部分视图和父视图可以有两种不同的视图模型吗?
例如,部分视图可能具有特定于该模型的下拉列表,而父视图可能具有其他一些实体的其他模型。
答案 0 :(得分:4)
是的,部分和父视图可以有两种不同的视图模型。
部分视图必须从某个地方获取它的viewModel,所以这可以直接从视图中创建它
家长视图
@{
var partialViewModel = new SomeOtherModel()
{
PartialName = Model.Name,
SomeProperty = SomeOtherVariable
};
Html.Partial("_MyPartialView", partialViewModel);
}
或者更常见的方法是Partial ViewModel是父ViewModel的属性
@Html.Partial("_MyPartialView", Model.PartialViewModel)
还有其他方法,但这些是你看到的相当普遍的方式。
答案 1 :(得分:1)
如果从父视图调用部分视图,则viewModel将位于父视图的ViewModel的子集中。您可以为父视图和部分视图使用不同的ViewModel。