如何在asp.net mvc 3应用程序中管理视图管理

时间:2012-04-17 18:35:01

标签: c# .net asp.net-mvc-3 frameworks views

我不确定这是否适合我的问题,但我会尝试一下。

我们正在开始开发一种新产品,它将使用asp.net mvc 3 razor作为表示层。该应用程序具有大约7-8个不同的角色,并且所有角色对数据的显示具有不同的视图。 我在NHibernate的帮助下构建了一个很好的框架,并实现了几个设计模式,因此应用程序的这一面很容易调整并应用维护。

我希望表示层与我的框架一样自适应,这就是为什么我想要找到一种方法,尽可能少地为所有不同类型的角色提供视图,但具有完整的功能。您使用什么样的实现来根据他的角色向最终用户分发视图?

我考虑过使用jquery模板,但是目前看到视图的可能性和剃刀语法听起来有点不必要,而不是优先去的方式。

在开发此应用程序时我应该记住的任何信息都会很好,想一想,常见的错误,最佳实践和建议等。

期待您的回复。

1 个答案:

答案 0 :(得分:2)

减少观看次数的一种方法是使用IsInRole()(或等效的,如果你有自定义的东西)与部分视图结合使用。在最简单的情况下,您可以使用一个视图,该视图还根据特定角色呈现其中的部分视图。有点像:

@if (HttpContext.Current.User.IsInRole("admin")) {
    @Html.Partial("_StuffForAdmins")
}

根据您的具体情况,可以跨多个不同的角色共享一些部分视图,从而减少重复的代码。所有角色都可以公开访问的用户界面元素可以放在视图上,而无需进行角色检查。

编辑:另一种语法是:

 <div>
        @if (Context.User.IsInRole("admin"))
        {
            @Html.Partial("_StuffForAdmins")
        }
    </div>