【问题标题】:Complex model binding to a list复杂模型绑定到列表
【发布时间】:2010-09-18 21:56:26
【问题描述】:

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

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

例如。

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

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

【问题讨论】:

    标签: c# asp.net-mvc binding


    【解决方案1】:

    是的,我写了详细的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" />
    

    【讨论】:

    • 注意:从(我相信)RC1 开始,不再需要名为“Foo.Index”的隐藏字段。
    • 在尝试设置类似的东西时,我似乎无法让它工作。 "Vendor" /"Vendor_Id" 导航属性 (EF4) .. 有什么线索吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2021-02-05
    • 1970-01-01
    • 2017-04-30
    相关资源
    最近更新 更多