1

我想在我的页面左侧设置一个菜单导航,该导航仅在用户登录后显示。

我不知道如何在我的 index.cshtml 文件中使用 MVC4 WebSecurity 类和 Razor 来实现这一点。

4

3 回答 3

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>
于 2013-02-09T11:11:47.177 回答
0

如果您使用的是 Windows 窗体身份验证,请查看 User.Identity.IsAuthenticated

于 2013-02-08T23:43:14.153 回答
0

使用两个布局页面

  • _Layout.cshtml
  • _MemberLayout.cshtml

那么你有两个选择:


第一:在_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";
    }
}

于 2016-04-30T00:31:47.430 回答