【发布时间】: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