如何从 Asp.net MVC 5 中的控制器操作视图中的菜单?
How do I manipulate a menu in the View from the controller in Asp.net MVC 5?
我的问题的要点是更改我网站的菜单以显示已登录的用户和注销按钮,从一开始就有一个登录按钮。
我是 MVC 的新手,可能会把这一切都搞错。这是我想修改的菜单,您会明白我的想法是什么。在表单中,我可以轻松地从后面的代码访问它,并使两个菜单选项之一不可见。
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Members", "About", "Home")</li>
<li>@Html.ActionLink("Schedule", "Contact", "Home")</li>
<li id="loginLink">@Html.ActionLink("Login", "Login", "Account")</li>
<li id="logoutLink">@Html.ActionLink("(" + Session["userName"].ToString() + ")" + "Logout", "Logout", "Account")</li>
</ul>
为什么要从控制器进行视图操作?我认为特定于视图的逻辑应该放在视图本身中。
如果您已经对用户进行了身份验证,并设置了身份验证 cookie,您可以在视图中执行以下操作:
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Members", "About", "Home")</li>
<li>@Html.ActionLink("Schedule", "Contact", "Home")</li>
@if (User.Identity.IsAuthenticated)
{
<li id="LogoutLink">@Html.ActionLink(User.Identity.Name + "Log Out", "Logout", "Account")</li>
}
else
{
<li id="loginLink">@Html.ActionLink("Login", "Login", "Account")</li>
}
</ul>
在不知道您如何对用户进行身份验证的情况下,我不能肯定地说此解决方案将满足您的需求。
如果用户已通过身份验证,此示例将 return LogoutLink 列表项,否则,如果用户未通过身份验证,它将 return LoginLink 列表项。
如果您有兴趣使用 ASP.NET 身份库进行身份验证,here 是一个包含一些精彩示例的博客,这对我帮助很大。
我的问题的要点是更改我网站的菜单以显示已登录的用户和注销按钮,从一开始就有一个登录按钮。 我是 MVC 的新手,可能会把这一切都搞错。这是我想修改的菜单,您会明白我的想法是什么。在表单中,我可以轻松地从后面的代码访问它,并使两个菜单选项之一不可见。
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Members", "About", "Home")</li>
<li>@Html.ActionLink("Schedule", "Contact", "Home")</li>
<li id="loginLink">@Html.ActionLink("Login", "Login", "Account")</li>
<li id="logoutLink">@Html.ActionLink("(" + Session["userName"].ToString() + ")" + "Logout", "Logout", "Account")</li>
</ul>
为什么要从控制器进行视图操作?我认为特定于视图的逻辑应该放在视图本身中。
如果您已经对用户进行了身份验证,并设置了身份验证 cookie,您可以在视图中执行以下操作:
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Members", "About", "Home")</li>
<li>@Html.ActionLink("Schedule", "Contact", "Home")</li>
@if (User.Identity.IsAuthenticated)
{
<li id="LogoutLink">@Html.ActionLink(User.Identity.Name + "Log Out", "Logout", "Account")</li>
}
else
{
<li id="loginLink">@Html.ActionLink("Login", "Login", "Account")</li>
}
</ul>
在不知道您如何对用户进行身份验证的情况下,我不能肯定地说此解决方案将满足您的需求。
如果用户已通过身份验证,此示例将 return LogoutLink 列表项,否则,如果用户未通过身份验证,它将 return LoginLink 列表项。
如果您有兴趣使用 ASP.NET 身份库进行身份验证,here 是一个包含一些精彩示例的博客,这对我帮助很大。