这是在共享组件中使用接口作为模型的好方法吗?

时间:2012-12-05 16:49:49

标签: c# asp.net-mvc asp.net-mvc-3

我必须创建共享局部视图 Partial1 ,它将在其他屏幕上使用。 因此,我可以创建接口 IPartialModel1 ,而不是为共享组件创建特定模型 PartialModel1

然后其他屏幕可以实现IPartialModel1 喜欢

BigScreenModel1:IPartialModel1
BigScreenModel2:IPartialModel1

所以在BigScreen.cshtml中我可以使用

@Html.Partial("Partial",BigScreenModel1)

和BigScreen2.cshtml

@Html.Partial("Partial",BigScreenModel2)

这是好习惯吗?

1 个答案:

答案 0 :(得分:3)

我使用这种方法的问题虽然可行,但是你将部分视图模型与包含页面的视图模型联系起来。

更好的方法是将局部视图模型作为页面视图模型的成员,如下所示:

public class BigScreenModel1
{
    public PartialViewModel OtherViewModel { get; set; } 
}

public class BigScreenModel2
{
    public PartialViewModel OtherViewModel { get; set; }
}

然后当然:

@Html.Partial("Partial", Model.OtherViewModel)

在两个页面上。这使视图模型彼此分离。