复杂模型绑定到列表

时间:2008-10-23 22:55:20

标签: c# asp.net-mvc binding

我一直在尝试从MVCContrib获取NameValueDeserializer,它将IList作为控制器的参数并将表单及其元素绑定到它,但我只是想知道MVC Beta是否有任何方法可以做到这一点?

我知道你可以绑定一个强类型的对象,但我想绑定一些这些对象的List来进行批量编辑。

例如

public void Save(IList<Item> items)
{
    foreach (Item i in items)
    {
        //Save item
    }
}

这在MVC Beta中是否可行? 在此先感谢。

1 个答案:

答案 0 :(得分:17)

是的,我写了一篇详细的blog post about it here。对于简单类型来说这很容易。对于复杂类型,您需要执行以下操作:

<input type="hidden" name="products.Index" value="0" />
<input type="text" name="products[0].Name" value="Beer" />
<input type="text" name="products[0].Price" value="7.32" />

<input type="hidden" name="products.Index" value="1" />
<input type="text" name="products[1].Name" value="Chips" />
<input type="text" name="products[1].Price" value="2.23" />

<input type="hidden" name="products.Index" value="2" />
<input type="text" name="products[2].Name" value="Salsa" />
<input type="text" name="products[2].Price" value="1.23" />