1
0
根据您所做工作的复杂性,if语句路由可能就足够了。如果没有,那么您可以考虑使用局部视图,并编写一个HtmlHelper扩展,允许您基于特定角色呈现局部视图。它可能看起来像这样:
|
2
0
|
3
0
您可以将所有的部分放在partials中,并构建视图以包含不同权限级别可用的部分。因此,一个用于管理员,一个用于每个级别。然后,控制器具有决定使用哪个视图的逻辑。因此,任何OO部分都将位于控制器中,而不是视图中。 |
4
0
这不是一种面向对象的方法,但它是相关的。这个问题有趣的部分是如何利用if语句。摆脱if或case的常用方法是使用条件和效果的查找表。还有其他技术也使用同样的思想,比如数据导向编程( http://en.wikipedia.org/wiki/Data-directed___programming )和调度表( http://en.wikipedia.org/wiki/Dispatch_table )。许多语言实现使用类型分派表来实现虚拟方法调用。 假设局部视图可以解决此问题,则查找表可以是对的列表。该对的第一个元素是要对照当前用户检查的角色名。该对的第二个元素是角色检查成功时要呈现的部分视图的名称。 我们在控制器(或任何地方)中初始化表并将其分配给ViewData,然后使用Html.RenderViewByRole选择并呈现正确的局部视图:
|
Vedant · 如何解决python啦啦队长问题?[已关闭] 2 年前 |
cobby · 在战略模式中使用工厂模式? 2 年前 |
Nobody · Java中带while循环的三角形模式 2 年前 |
Eduard Stefanescu · 如何在层之间传输异常? 6 年前 |
D. Schreier Talha Noyon · 对于目录中的每个类 6 年前 |
Tanvi Jaywant · 如何重载类 6 年前 |