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

@model IEnumerable<ViewModels.MyObject>

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

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

有没有办法在 lambda 表达式中使用 Html 助手来创建从我的模型中强类型化的元素?

或者最好将此页面的表单部分作为另一个部分 View 加载为 MyObject(不是集合)?

最佳答案

您可以创建具有两个 View 模型作为属性的 View 模型:

class ListCreateViewModel {
    ListViewModel ListViewModel { get; set; }
    CreateViewModel CreateViewModel { get; set; }
}

那你可以用
Html.RenderPartial("Create", Model.CreateViewModel);

您的部分将以 CreateViewModel 作为模型。

您还可以制作完全独立的 View 和模型并调用:
Html.RenderAction("Create", "Controller");
RenderAction 表现为新的请求, View 在不同的上下文中呈现。

10-08 07:02