绑定复杂模型到列表中

12

我一直在尝试使用MVCContrib中的NameValueDeserializer,它可以将一个IList作为控制器的参数,并将一个表单及其元素绑定到它上面,但我想知道MVC Beta是否有任何方法来完成这个?

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

例如:

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

MVC Beta 中是否可以实现这个功能?

1个回答

17
是的,我写了一篇详细的关于此的博客文章,请点击这里阅读。对于简单类型来说,这非常容易。对于复杂类型,您需要做一些像这样的事情:
<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" />

3
注意:自 RC1 版本以来,不再需要名为“Foo.Index”的隐藏字段。 - Troy
我似乎无法在尝试设置类似于“Vendor” / “Vendor_Id”导航属性(EF4)时使其工作。有什么线索吗? - Michiel Cornille

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接