我想在页面左侧设置一个菜单导航,只有在用户登录后才能显示。
我不知道如何在我的index.cshtml文件中使用MVC4 WebSecurity类和Razor实现此目的。
答案 0 :(得分:1)
尝试使用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>
答案 1 :(得分:0)
如果您使用的是Windows窗体身份验证,请查看User.Identity.IsAuthenticated
答案 2 :(得分:0)
使用两种布局页面
那么您有两个选择:
首先:在_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";
}
}