我的控制器无法从控制器传回模型。我花了整个上午想不出来,如果任何人可以帮我解决它的话。谢谢!!!
补充:我有点跟随这个例子,它只有表单标签而不是ajax表单
MVC4 Passing model from view to controller
模型 它是产品实体的列表,我使用.net实体框架进行数据库访问
public class VM_Products
{
public List<FMST_Product> Products { get; set; }
}
控制器
private FMSTEntities ctx = new FMSTEntities();
public ActionResult Index()
{
VM_Products vmps = new VM_Products();
vmps.Products = ctx.FMST_Product.ToList();
return View("Index", vmps);
}
// when I step in, the SelectedProducts is always null ???
public ActionResult AddToCart(FMST_Product SelectedProducts)
{
return View();
}
查看
@using FMST
@using FMST.Models
@model VM_Products
<ul id="products" class="list clear">
@foreach (var p in Model.Products)
{
<form action="POST" id=@p.ProductID>
<li class="clearfix">
@p.ProductID
<br>
@p.ProductName
<br>
@p.ProductDesc
<br>
@p.ProductPrice
<span class="darkview">
@Html.ActionLink("Add To CT","AddToCart","Product",p);
</span>
</li>
</form>
}
</ul>
答案 0 :(得分:0)
看起来您的AddToCart Action需要一个产品列表,但您传递的是单个产品。
可以一步将多个产品添加到购物车中吗?希望这能指出你正确的方向。
答案 1 :(得分:0)
更改您的html帮助程序:
@Html.ActionLink("Add To CT","AddToCart","Product",p);
为:
@Html.ActionLink("Add To CT","AddToCart","Product",p,null);
由于您在html帮助器中指定了ControllerName
,因此需要通过将null作为最后一个参数来强制帮助程序使用正确的重载。