观点中的条件陈述是坏消息吗?

Jer*_*ose 6 asp.net-mvc razor asp.net-mvc-3 asp.net-mvc-2

我需要快速的健全检查.我正在尝试设计我的观点,使它们干净,简洁,并且尽可能没有任何条件逻辑.但是,我很难摆脱所有条件陈述.我想知道在视图中是否有一些条件语句是不可避免的?

例如:

@if (Model.UserCanEdit)
{
    <button type="button" id="Edit">Edit</button>
}
Run Code Online (Sandbox Code Playgroud)

如果您的视图具有可根据不同条件更改或显示/隐藏的多个元素,则选项不多.

那么我应该遵循哪些指导方针,在视图中允许条件逻辑的哪一行?在我的观点中有哪些减少条件逻辑的方法,我可能没想到?

提前致谢.

Rio*_*ams 10

我不会说在视图中使用条件是完全不好的 - 毕竟视图的主要目的实际上是显示模型中的数据.(有时需要条件语句来显示数据.)

然而 - 使用大量的条件可能会使维护成为一场噩梦并最终成为可读性.重要的是要记住不要将条件包括在成为业务逻辑的范围内,而是允许它们作为"表示逻辑"来实现其目的.

可能的替代方案:

自定义HTML帮助程序:

如果你对使用条件不是很疯狂 - 你可以考虑使用Helpers来清理一些东西.有关该更多信息,请查看创建自定义HTML帮助程序.

其他视图/部分视图:

此外,正如许多人将指出的那样 - 使用条件将单个视图函数作为多个视图应该不是解决该问题的最佳方法.

  • 第二段+1.根据条件的不同,它可能只是表示逻辑.有人可能会认为视图应该具有必要的逻辑,并且确定视图的任何参数都可以传递到较低级别.毕竟,如果您可以选择要显示的两个数据(即使一个选项没有显示),那么您的视图中包含它在所有情况下都不需要的数据. (2认同)