我到处都在寻找这个不那么古老的问题的优雅解决方案。如何在ASP.Net MVC View 中锁定表单元素,而又不添加if ... then逻辑?
理想情况下,来自OnAuthorization或OnResultExecultion的BaseController将检查呈现表单元素,并根据角色和作用域隐藏/不呈现它们。
我考虑过的另一种方法是编写某种自定义属性,以便与我们如何使用[Authorize]锁定ActionResults保持一致。如果不将隐藏对象列表传递给 View 并将if结束,这是否有可能?
其他背景信息:我们将拥有一个数据库,该数据库将在执行时(基于用户角色/范围)告诉我们哪些元素将被隐藏。我们正在将MVC3与Razor Viewengine一起使用。我们正在利用BaseController,在其中可以重写任何Controller方法。
在这方面的任何帮助将不胜感激!
最佳答案
您可以使用多种不同的方法:
欲了解更多信息:
关于asp.net-mvc - 如何在没有逻辑的情况下基于安全性在Razor View 上隐藏特定元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5540214/