我不确定这里是否适合我的问题,但我会试一试。
我们正在开始开发一款新产品,它将使用asp.net MVC3剃刀作为表示层。应用程序大约有7-8个不同的角色,所有的角色都有不同的视图来显示数据。在NHibernate和一些设计模式的实现的帮助下,我已经构建了一个很好的框架,所以应用程序的这一端将很容易调整和维护。
我希望表示层像我的框架一样具有自适应性,这就是为什么我试图找出一种方法,使所有不同类型的角色具有尽可能少的视图,但具有完整的功能。您使用哪种实现来根据最终用户的角色将视图分发给他?
我考虑过使用jquery模板,但考虑到当前可能的视图和剃刀语法,它听起来有点不必要,也不是首选的方法。
在开发这个应用程序时,我应该记住的任何信息都将是很好的,思考,常见的错误,最佳实践和建议等。
期待您的回复。
发布于 2012-04-18 06:19:39
减少视图数量的一种方法是将IsInRole() (如果您有自定义的内容,则使用等效的内容)与部分视图结合使用。在最简单的情况下,您可以拥有一个视图,该视图还根据特定的角色在其中呈现部分视图。大致是这样的:
@if (HttpContext.Current.User.IsInRole("admin")) {
@Html.Partial("_StuffForAdmins")
}根据您的情况,一些部分视图可以在多个不同的角色之间共享,从而减少重复的代码。所有角色都可以公开访问的用户界面元素可以直接放在视图本身上,而不需要进行角色检查。
EDIT:另一种语法是:
<div>
@if (Context.User.IsInRole("admin"))
{
@Html.Partial("_StuffForAdmins")
}
</div>https://stackoverflow.com/questions/10196989
复制相似问题