2

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

然后其他屏幕可以像这样实现 IPartialModel1

BigScreenModel1:IPartialModel1
BigScreenModel2:IPartialModel1

所以在 BigScreen.cshtml 我可以使用

@Html.Partial("Partial",BigScreenModel1)

在 BigScreen2.cshtml 上

@Html.Partial("Partial",BigScreenModel2)

这是好习惯吗?

4

1 回答 1

3

这种方法虽然可行,但我遇到的问题是您将部分视图模型与包含页面的视图模型绑定在一起。

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

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

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

然后当然是:

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

在两页上。这将视图模型彼此分离。

于 2012-12-05T20:26:43.153 回答