ASP.NET MVC LIST和Create在同一视图中

ste*_*776 7 c# asp.net asp.net-mvc asp.net-mvc-3

好的我有一个View强制类型作为MyObject的集合

@model IEnumerable<ViewModels.MyObject>
Run Code Online (Sandbox Code Playgroud)

我遍历集合以创建对象列表.

在同一页面上,我需要创建表单来添加新的MyObject.

有没有办法沿着lambda表达式使用Html帮助器来创建从我的模型强类型的元素?

或者最好将此页面的Form部分加载为另一个部分视图,类型为MyObject(不是集合)?

Luk*_*Led 7

您可以使用两个视图模型创建视图模型作为属性:

class ListCreateViewModel {
    ListViewModel ListViewModel { get; set; }
    CreateViewModel CreateViewModel { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以使用

Html.RenderPartial("Create", Model.CreateViewModel);
Run Code Online (Sandbox Code Playgroud)

你的部分将具有CreateViewModel模型.

您还可以制作完全独立的视图和模型并调用:

Html.RenderAction("Create", "Controller");
Run Code Online (Sandbox Code Playgroud)

RenderAction 表现为新请求,视图在不同的上下文中呈现.