2008-10-23 87 views
12

我一直在试用MVCContrib中的NameValueDeserializer,它将IList作为参数传递给控制器​​,并将表单及其元素绑定到它,但我只是想知道MVC Beta是否有任何这样做的方式?复杂的模型绑定到列表

我知道你可以绑定一个强类型的对象,但我想为这些对象的列表绑定一些批量编辑情况。

例如。

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

这是可能的MVC Beta? 在此先感谢。

回答

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" /> 
+3

注:不再需要名为“Foo.Index”的隐藏字段,作为(我相信)RC1。 – Troy 2009-04-30 12:11:29