【问题标题】:Asp.net MVC Binding an object with properties which are collections of objects which also have child collection propertiesAsp.net MVC 绑定具有属性的对象,这些属性是对象的集合,这些对象也具有子集合属性
【发布时间】:2009-09-24 22:35:09
【问题描述】:

我正在尝试使用 Asp.net MVC 从大量表单中检索数据。它的顶部对象 L1 包含其他类型 L2 的集合的属性。然而,类型 L2 包含一些属性,这些属性是类型 L3 的集合,依此类推。嵌套集合大概有 5 级。

我已经看到了在 Asp.Net MVC 中绑定到列表的方法,其中元素名称具有包含在其所有属性 html 元素名称中的数组子字符串,例如[0] 在第一组中,[1] 在第二组中等等。

但是,当我们有嵌套对象时,去 town[0].council[0].street[0].Name 并使用该约定来命名 html 元素将变得非常棘手/噩梦。

有没有人遇到过这种情况/可以看到解决它的优雅方法?

谢谢

米奇

【问题讨论】:

    标签: asp.net-mvc collections binding nested


    【解决方案1】:

    ASP.NET MVC 附带的默认模型绑定器决定了您所指的表单元素命名约定。如果您想使用另一种约定来命名表单元素,那就去吧。然后您只需要编写一个自定义模型绑定器,它可以根据您的约定填充您的嵌套对象。

    有很多关于创建模型绑定器的教程,这里有一些:

    http://www.singingeels.com/Articles/Model_Binders_in_ASPNET_MVC.aspx

    http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/03/17/a-better-model-binder.aspx

    【讨论】:

      【解决方案2】:

      您可能需要考虑使用 LINQ 为您抽象出细节,并允许您在列表中执行连接和诸如此类的操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-28
        • 2011-03-30
        • 1970-01-01
        • 1970-01-01
        • 2012-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多