我想在我的页面左侧设置一个菜单导航,该导航仅在用户登录后显示。
我不知道如何在我的 index.cshtml 文件中使用 MVC4 WebSecurity 类和 Razor 来实现这一点。
我想在我的页面左侧设置一个菜单导航,该导航仅在用户登录后显示。
我不知道如何在我的 index.cshtml 文件中使用 MVC4 WebSecurity 类和 Razor 来实现这一点。
尝试使用 2 布局:
_Layout.cshtml 用于非登录用户和
_memberLayout.cshtml 用于登录用户。将您的会员菜单放在 _memberLayout 中。
/首页/索引控制器:
public ActionResult Index()
{
if (User.Identity.IsAuthenticated)
{
return RedirectToAction("Index", "Member");
}
return View();
}
/成员/索引控制器:
[Authorize]
public ActionResult Index()
{
return View();
}
成员文件夹中的 Index.cshtml:
@{
ViewBag.Title = "Member Area";
Layout = "~/Views/Shared/_memberLayout.cshtml";
}
<div>
... your member html code
</div>
如果您使用的是 Windows 窗体身份验证,请查看 User.Identity.IsAuthenticated
使用两个布局页面
那么你有两个选择:
第一:在_ViewStart.cshtml
改变
Layout = "~/Views/Shared/_Layout.cshtml";
到
if (Request.IsAuthenticated)
{
Layout = "~/Views/Shared/_MemberLayout.cshtml";
}
else
{
Layout = "~/Views/Shared/_Layout.cshtml";
}
或者:在每个视图的开头执行以下操作:
@{
ViewBag.Title = "Home Page";
if (Request.IsAuthenticated)
{
Layout = "~/Views/Shared/_MemberLayout.cshtml";
}
}