我有一个Index View
,其中一个表填充了List属性中的数据,但是当我使用表发布表单时,该属性为null。
以下是模型:
public class BillViewModel
{
public List<Product> ListProducts { get; set; }
}
以下是产品视图:
public class Product
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public decimal Price { get; set; }
}
以下是视图:
@using (Html.BeginForm())
{
<input type="submit" value="Aceptar"/>
<table id="tabla">
@foreach (var item in Model.ListProducts)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.ProductName)
</td>
</tr>
}
</table>
}
我可以添加或删除产品,但如何在控制器中获取产品列表?:
[HttpPost]
public ActionResult Index(BillViewModel billViewModel)
{
return View();
}
答案 0 :(得分:4)
这很简单,您需要做的就是将所有项目属性放在表单中,如下所示:
<input type="submit" value="Aceptar"/>
<table id="tabla">
@for (int i = 0; i < Model.ListProducts.Count; i++)
{
<tr>
<td>
@Html.HiddenFor(x => x.ListProducts[i].ProductId)
@Html.HiddenFor(x => x.ListProducts[i].Price)
@Html.DisplayFor(x => x.ListProducts[i].ProductName)
</td>
</tr>
}
</table>