嘿伙计们,在THIS帖子和其链接到的其他帖子之后,我已经成功构建了一个带有可变legnth可编辑列表的页面。
现在,我需要做另一个具有类似功能的页面,但更进一步。基本上我需要创建一个可变长度的对象列表,就像我已经完成的那样,但在这种情况下,列表中的每个对象都需要有自己的可变长度可编辑子列表。
我可以毫无问题地构建视图,但我想我在POST控制器方法中如何处理这个以保存对象时会丢失。
我的控制器会采用2个IEnumerable参数吗? 即。
public ActionResult SaveList(IEnumerable<MainList>, IEnumerable<Sublist>)
{
}
看起来这样可行但我无法将子列表集合中的对象与主列表集合中的相应对象相关联。
我错过了什么?
答案 0 :(得分:2)
总结我们评论讨论的结果作为答案:
子列表应该是您的MainList
元素的成员。在视图中,您将拥有一个嵌套的foreach循环来处理Sublist
元素。在控制器中,您只需接受MainList
作为参数(它应该已经将子列表作为成员)。为了使ModelBinder
正确地获取子列表,输入的名称应该首先包括主列表的名称(而不仅仅是子列表项中的属性)。
答案 1 :(得分:1)
我认为您需要构建一个ModelBinder类,以您希望的方式接受这些参数到控制器对象中。