MVC发送对象列表

时间:2013-07-23 17:23:56

标签: c# asp.net-mvc razor

我有一个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();
    }

1 个答案:

答案 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>