【发布时间】:2011-04-04 14:48:46
【问题描述】:
我已经为这个不那么古老的问题寻找了优雅的解决方案。如何在 ASP.Net MVC 视图中锁定表单元素,而不在所有地方添加 if...then 逻辑?
理想情况下,来自 OnAuthorization 或 OnResultExecultion 的 BaseController 将检查呈现表单元素并根据角色和范围隐藏/不呈现它们。
我考虑过的另一种方法是编写某种自定义属性,以便与我们使用 [Authorize] 锁定 ActionResults 的方式保持一致。如果不将隐藏对象列表传递给视图并放置 if's all over,这甚至可能吗?
其他背景信息:我们将拥有一个数据库,它会在执行时(基于用户角色/范围)告诉我们哪些元素将被隐藏。我们将 MVC3 与 Razor Viewengine 一起使用。我们正在使用一个 BaseController,其中任何 Controller 方法都可以被覆盖。
对此的任何帮助将不胜感激!
【问题讨论】: