复杂模型绑定到列表

Sch*_*ime 12 c# asp.net-mvc binding

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

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

例如.

public void Save(IList<Item> items)
{
    foreach (Item i in items)
    {
        //Save item
    }
}
Run Code Online (Sandbox Code Playgroud)

这在MVC Beta中是否可行?提前致谢.

Haa*_*ked 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" />
Run Code Online (Sandbox Code Playgroud)

  • 注意:不再需要名为"Foo.Index"的隐藏字段,因为(我相信)RC1. (3认同)