Asp.net MVC使用属性绑定对象,这些属性也是具有子集合属性的对象集合

时间:2009-09-24 22:35:09

标签: asp.net-mvc collections binding nested

我正在尝试使用Asp.net MVC从大规模形式中检索数据。其顶层对象L1包含属于其他类型L2的集合的属性。但是,类型L2包含一些L3类型集合的属性,依此类推。可能有5个级别的嵌套集合。

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

然而,当我们有嵌套对象时,去城镇[0] .council [0] .street [0] .Name并使用该约定命名html元素将会非常棘手/噩梦。

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

由于

米奇

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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