MVC 4从模型到布局获取数据

时间:2015-07-05 20:09:25

标签: asp.net-mvc asp.net-mvc-4

我创建了一个关于员工的应用程序,当管理员的员工登录时,他会再获得一个关于管理员工的菜单链接。这链接在_layout body标题中。我想显示链接只有你知道什么时候员工是管理员而我想做的就像我创建一个带有bool变量的类,当有人登录时我想从该类创建一个对象并设置bool varoable false或true取决于该员工是否是管理员。如果对象bool变量为true,那么当每次更改链接关于管理员工的菜单时,如果对象bool变量为true,那么当每次更改页面时,如果该员工是管理员。我仍然是MVC的新手,我正在寻找解决方案,但可以找到答案。

为了我的英语,我没有朋友,我可以训练它。

_Layout:
@model namespace.Models.MyModel
...
@if(Model.adminUser){ @Html.ActionLink("UserManagment","Index","Users")

MyModel:
public class MyModel{
public bool adminUser{get;set;}
}

LoginController:
.....
Logic Check that if usern and pw ok and if he is an admin
new MyModel{adminUser=true}
else{
MyModel{adminUser=false}
}

1 个答案:

答案 0 :(得分:0)

嗯,我根据您的帖子和评论猜测这可能是您正在寻找的内容(?):

在某些_Layout中:

<div>
   <ul>
      <li>@Html.ActionLink("Home", "Index", "Home")</li>
      <li>@Html.ActionLink("About", "About", "Home")</li>
      <li>@Html.ActionLink("Contact", "Contact", "Home")</li>

    @if (Request.IsAuthenticated && User.IsInRole("Admin"))
     {
       <li>@Html.ActionLink("User Managment","Index","Users")</li> //some privileged link
       <li>@Html.ActionLink("Foo Management","Index","Foo")</li> //some privileged link
     }

   </ul>
</div>

在简单的例子中

  • 检查是否Request.IsAuthenticated
  • 经过身份验证的用户担任角色(例如管理员)
  • 然后才显示&#34;特权链接&#34;

以上只处理显示 - 您必须protect/restrict your Controller/Actions appropriately

H个。