我有几个视图,它们由基于上下文的几个部分视图组成。
例如,我们有一个项目视图,显示项目的所有详细信息,包括标量值,名称等,以及所有已分配的员工,任务和/或客户。
我遇到的问题是,某些类型的项目具有上述所有部分,而其他项目只有两个甚至是部分,即。仅供参考。
撰写项目主视图的最佳方法是什么?我不想在视图中检查项目的逻辑。有没有办法通过以编程方式呈现相关的部分并忽略其余部分来编写代码中的视图?
否则有任何其他想法如何以可维护的方式做到这一点?我当然可以使用if语句来渲染部分,以检查它们是否适用,但这种方式视图包含非常重要的逻辑。在另一种情况下,我们希望使用此方法根据用户的订阅类型显示内容。
谢谢!
答案 0 :(得分:1)
我会坚持使用if
方法。为了避免在视图模型中的视图定义属性中编码重要逻辑,并让控制器设置值,以便在视图中只有:
<% if (Model.HasDetails) { %>
<% Html.RenderPartial("details"); %>
<% } %>
或者如果您正在使用显示/编辑器模板,您可以简单地:
<%= Html.DisplayFor(x => x.Details) %>