我必须创建共享局部视图 Partial1 ,它将在其他屏幕上使用。 因此,我可以创建接口 IPartialModel1 ,而不是为共享组件创建特定模型 PartialModel1 。
然后其他屏幕可以实现IPartialModel1 喜欢
BigScreenModel1:IPartialModel1
BigScreenModel2:IPartialModel1
所以在BigScreen.cshtml中我可以使用
@Html.Partial("Partial",BigScreenModel1)
和BigScreen2.cshtml
@Html.Partial("Partial",BigScreenModel2)
这是好习惯吗?
答案 0 :(得分:3)
我使用这种方法的问题虽然可行,但是你将部分视图模型与包含页面的视图模型联系起来。
更好的方法是将局部视图模型作为页面视图模型的成员,如下所示:
public class BigScreenModel1
{
public PartialViewModel OtherViewModel { get; set; }
}
public class BigScreenModel2
{
public PartialViewModel OtherViewModel { get; set; }
}
然后当然:
@Html.Partial("Partial", Model.OtherViewModel)
在两个页面上。这使视图模型彼此分离。