我一直在尝试想出一种方法来为我正在从事的项目创建基于动态角色的导航解决方案。
导航应仅显示与用户角色相关的链接,例如:管理员将具有查看应用程序统计信息、管理客户帐户等的链接……而标准用户将具有管理其帐户、与朋友交流的链接, 等等..
我目前有一个名为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
有没有办法让这个逻辑脱离视图并让控制器处理这个?