我有一个MVC3视图,它是使用视图模型从控制器填充的。使用存储库中的populate方法对Viewmodel进行了初始化/填充。现在我想创建部分视图,并希望隐藏几个部分。我是否需要创建不同的方法来填充视图模型,我需要打破viewmodela?请建议
答案 0 :(得分:2)
您可以让视图模型具有不同的复杂属性,这些属性本身代表将绑定到相应部分的其他视图模型。您还可以包含布尔属性,指示这些部分是否需要可见。例如:
@if (Model.ShouldShowFooSection)
{
@Html.DisplayFor(x => x.Foo)
}
或:
@if (Model.ShouldShowFooSection)
{
@Html.Partial("_Foo", Model.Foo)
}
答案 1 :(得分:1)
没有任何内容表示您拥有来定义新的viewmodel或repository方法以支持部分视图。您必须根据您的方案的详细信息来决定它是否值得。
长期维护可能会更好地解决问题,但这纯粹是您的设计选择。
根据存储库的工作方式,如果您只需要检索数据子集,那么性能也可能会提高 - 但这可能会因为多个存储库调用呈现单个页面而导致性能损失。