我有一个GroupPageViewModel
,其public string GroupName { get; }
和服务方法EditGroupInputModel
的输入模型也有public string GroupName { get; set; }
。
在页面视图中,我想呈现Group
,la Html.Partial("~/Views/Group/_EditGroup.cshtml", ???)
或使用EditorFor
的编辑器。
我希望model
的{{1}}成为_EditGroup.cshtml
,但需要从父视图中了解EditGroupInputModel
GroupName
} property。
我意识到我可以使用GroupName
,但我觉得这有点偏离了MVC框架的意图(或者我还没有看到像这样的例子)。
这是"最佳实践"将这样的参数传递给局部视图模型的方法,还是MVC框架有更好的方法?
答案 0 :(得分:1)
imho
没有任何问题Html.Partial("~/Views/Group/_EditGroup.cshtml", new EditGroupInputModel() { GroupName = Model.GroupName})
我通常在构造函数中传递父视图的模型,因此由子模型决定它需要什么:
查看:
Html.Partial("~/Views/Group/_EditGroup.cshtml", new EditGroupInputModel(Model))
EditGroupInputModel.cs:
EditGroupInputModel(GroupPageViewModel parentModel)
{
GroupName = parentModel.GroupName;
}