【问题标题】:How to receive data from a View to a Controller and then pass to a new View如何从视图接收数据到控制器,然后传递给新视图
【发布时间】:2019-10-30 00:07:19
【问题描述】:

大家好!这是交易...我试图将使用@Html.ActionLink 从视图中获得的值传递给控制器​​,然后传递给新视图。我将在下面提供一些代码以便更好地理解。

我尝试使用与我需要的值相同的变量创建一个 ViewModel,并且在控制器中我尝试使用 ActionResult 重载从视图传递值以封装 ViewModel 类,所以当我尝试显示这些时结果返回到新视图,它得到空异常。我是 C# 的新手,如果有人知道我可以在这种情况下使用的其他更好的东西,我会非常感谢帮助,谢谢!

我的部分观点与我想要的价值观:

<ul>
            @foreach (var item in Model)
            {
                <li>@Html.ActionLink(item.Pedido + " - " + item.Status, "Index", "Pedidostatus", new { pedido = item.Pedido, status = item.Status }, null)</li>
            }
        </ul>

我只需要在 Pedidostatus 控制器中接收 'pedido' 和 'status',所以我使用 Html.ActionLink 传递值,正如大家所见。

我创建的 ViewModel:

public class PedidosViewModel
    {
        public string PedidoVM { get; set; }
        public string StatusVM { get; set; }
    }

我想接收视图值的控制器(Pedidostatus):

using Status_Pedido_Venda.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Status_Pedido_Venda.Controllers
{
    public class PedidostatusController : Controller
    {
        // GET: Pedidostatus
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Show(string pedido, string status)
        {
            PedidosViewModel viewModel = new PedidosViewModel()
            {
                PedidoVM = pedido,
                StatusVM = status
            };


            return View("Index", viewModel);
        }
    }
}

我想通过控制器显示从第一个视图获得的值的新视图:

@model Status_Pedido_Venda.ViewModels.PedidosViewModel

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

@if(Model.PedidoVM != null && Model.StatusVM != null)
{
    <h2>@Model.PedidoVM</h2>
    <h2>@Model.StatusVM</h2>
}

我希望在我的新视图中显示从第一个视图获得的结果。

【问题讨论】:

    标签: c# html asp.net model-view-controller


    【解决方案1】:

    动作名称应该是显示而不是索引

    <li>@Html.ActionLink(item.Pedido + " - " + item.Status, "Show", "Pedidostatus", new { pedido = item.Pedido, status = item.Status }, null)</li>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-02
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      相关资源
      最近更新 更多