2013-03-26 81 views
0

我正在处理MVC3项目,目前我正在用viewmodel中的列表来拼凑。我希望能够将项目添加到列表中,而无需执行我的主视图的后置(后退)。当我按下提交按钮时,我希望viewmodel包含我列表中的项目。在视图模型内编辑嵌套列表

完成此功能的最佳方法是什么?

由于提前,

回答

1

该解决方案最初是写给MVC2但在MVC 3工程和4

http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/

更新

如果你不希望使用@ Html.BeginCollectionItem你不必。使用以下内容同样适用:

@for (int i = 0; i < Model.Items.Count; i++) 
{ 
    @* 
     You can replace this line with whatever you require but 
     for simplicity I prefer to create an editor template for the sub type 
    *@ 
    @Html.EditorFor(m => m.Items[i])  
} 
+0

那么你告诉我的是,你需要一个扩展来完成这种行为?我会测试这个例子,但很难相信没有其他方法。 – Ian 2013-03-26 09:19:37

+0

你指的是BeginCollectionItem吗?你也可以使用for循环。我会更新我的答案 – NinjaNye 2013-03-26 09:23:23

+0

感谢您更新您的答案,但您提供的更新不是我所苦苦挣扎的,主要问题是与控制器的沟通。我正在编辑的项目相当复杂,无法使用editorfor进行渲染。 – Ian 2013-03-26 09:39:24