asp.net-mvc-4 – 基于角色的导航
发布时间:2020-05-23 21:43:08 所属栏目:asp.Net 来源:互联网
导读:我一直在尝试为我正在开发的项目创建一个基于动态角色的导航解决方案. 导航应仅显示与用户角色相关的链接,例如:管理员将具有查看应用程序统计信息,管理客户帐户等的链接,而标准用户将拥有管理其帐户的链接,与朋友交流等等.. 我目前有一个名为Navigation的局
|
我一直在尝试为我正在开发的项目创建一个基于动态角色的导航解决方案. 导航应仅显示与用户角色相关的链接,例如:管理员将具有查看应用程序统计信息,管理客户帐户等的链接,而标准用户将拥有管理其帐户的链接,与朋友交流等等.. 我目前有一个名为Navigation的局部视图,其中包含一些用于角色检查的基本条件语句以及用于显示相应链接的混合标记.这有效,但是,我知道它很快就会变得无法管理. 导航局部视图: @if(User.IsInRole("Admin")) {
<li><a href="#">Statistics</a></li>
<li><a href="#">Accounts</a></li>
<li><a href="#">Dashboard</a></li>
}
@if(User.IsInRole("User")) {
<li><a href="#">Account</a></li>
<li><a href="#">Friends</a></li>
}
// code omitted
有没有办法让这个逻辑退出视图并让Controller处理这个? 解决方法解正如所建议的那样,我创建了一个名为Menu的ChildAction和每个角色的部分视图.在操作中,我使用一些条件语句进行角色检查并渲染适当的视图. 这使条件语句保持在视图之外,从而使其成为更清晰的解决方案. 我确信可以做一些事情来整理它,我会继续努力改进它. 这是我使用的解决方案. 在我希望菜单出现的布局视图中,我使用了它. @Html.Action("Menu","Navigation")
然后我创建了一个名为Navigation的控制器,并添加了一个名为Menu的Action. public class NavigationController : Controller
{
[ChildActionOnly]
public ActionResult Menu()
{
if (Roles.IsUserInRole("Administrator"))
{
return PartialView("_NavigationAdmin");
}
return PartialView("_NavigationPublic");
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – EF和存储库模式 – 在一个控制器中以多个
- asp.net – 在aspx中缩短名称空间别名
- asp.net – 当绑定到XmlDataSource时如何编程设置Dropdownl
- ASP.NET web.config:system.web.compilation中的debug属性
- asp.net-mvc-3 – 当不需要/需要使用AntiForgeryToken时?
- asp.net-mvc – 我有15分钟向我的同事介绍ASP.NET MVC 我应
- asp.net – 如何自动执行功能/集成测试和数据库回滚
- ASP.NET:将内容注入所有Response流
- ASP.NET MVC Web应用程序与ASP.NET Web应用程序
- asp.net – 如何避免UpdatePanel在AutoPostBack上滚动?
推荐文章
站长推荐
热点阅读
