有这样一个需求: 不同的角色登录进网站之后显示的部分内容及母版页不一样 怎么实现
刚看到这个需求 以为很麻烦 因为主要角色显示的内容已经都弄好了 但是只有两三个角色需要改动母版页及部分页面内容 我有些担忧 但是经过一个小小的测试发现 很轻松就搞定了
.NET MVC加载页面是通过 以下代码 也就是Loyout的值来加载母版页的
@{
ViewBag.Title = "ABC";
Layout = "~/Views/Shared/_Layout.cshtml";
}
所以在确定加载哪个母版页之前先判断角色需要用哪个母版页 下面只展示了两种角色
@{
ViewBag.Title = "Index";
if (ACLController.Current.Role > Model.Models.SecurityUserRole.User)
{
Layout = "~/Views/Shared/_Layout.cshtml";
}
else
{
Layout = "~/Views/Shared/_LayoutUser.cshtml";
}
}
母版页的问题轻松搞定
至于页面上不同的角色显示的内容不一样的问题 如果差别很大 那就创建几个不同的视图 在后端判断这个角色是要显示哪个视图 然后展示 如果只是很少的区别 就在.cshtml上判断一下角色 不同的角色显示不同的内容即可