如何将_Layout页面中的Html.ActionLink隐藏到另一个cshtml页面?

时间:2016-09-25 18:52:10

标签: asp.net-mvc razor

我是mvc的新手。现在我正在尝试创建一个登录页面。如果登录成功,则应重定向到管理页面。这很有效,但即使登录成功,也会显示bool operator<(const screenPoint& left, const screenPoint& right){ if (left.x != right.x) return left.x < right.x; else return (left.y < right.y); } 按钮。登录成功后,我只想在管理视图中使用Login按钮。

现在我的管理员视图显示如下:

  

登录 退出
  欢迎管理员

但我想要这样的东西

  

注销
  欢迎管理员

这是我的 _Layout.cshtml页面

logout

和控制器:

<ul class="nav navbar-nav">
    <li>@Html.ActionLink("Login", "Login", "MyAccount")</li>
    <li>
    @{
      if (Request.IsAuthenticated)
      {
          <li>@Html.ActionLink("Logout", "Logout", "MyAccount")</li>
      }                          
    }
    </li>
</ul>

和管理员视图:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(Login l, string returnUrl = "")
{
    //Some code//
    {
                return RedirectToAction("Admin", "Home");
    }
}   

我不知道是否可以将“登录”按钮从_layout隐藏到管理视图。

1 个答案:

答案 0 :(得分:1)

为什么不使用if-else有条件地呈现链接?

<ul>
@if (!Request.IsAuthenticated)
{
   <li>@Html.ActionLink("Login", "Login", "MyAccount")</li>
}
else 
{    
   <li>@Html.ActionLink("Logout", "Logout", "MyAccount")</li>
}
</ul>