对于这个不那么古老的问题,我一直在寻找优雅的解决方案。如何在ASP.Net MVC视图中锁定表单元素,而不是在整个地方添加if ... then逻辑?
理想情况下,来自OnAuthorization或OnResultExecultion的BaseController将检查呈现表单元素并根据角色和范围隐藏/不呈现它们。
我考虑的另一种方法是编写某种自定义属性,以便与我们如何使用[Authorize]锁定ActionResults的方式保持一致。如果没有将隐藏对象列表传递给视图并将if全部放在一边,这是否可行?
其他背景信息:我们将有一个数据库,告诉我们在执行时(基于用户角色/范围)将隐藏哪些元素。我们正在使用MVC3和Razor Viewengine。我们正在使用BaseController,其中可以覆盖任何Controller方法。
对此的任何帮助都将深表感谢!
答案 0 :(得分:2)
您可以使用多种不同的方法:
更多阅读: