我有一个MVC5应用程序,有许多不同的领域。该项目是使用导航栏中的“注销”链接创建的,但如果用户位于任何“区域”中,则链接将断开。我想补充一下:
new { area = "" }
会将链接指向正确的位置,但要么它没有,要么我在错误的地方尝试过。代码如下:
@using Microsoft.AspNet.Identity
@if (Request.IsAuthenticated)
{
using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
{
@Html.AntiForgeryToken()
<ul class="nav navbar-nav navbar-right">
<li>
@Html.ActionLink("Hello " + User.Identity.GetUserName(), "Manage", "Account", routeValues: null, htmlAttributes: new { title = "Manage" })
</li>
<li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
</ul>
}
}
else
{
<ul class="nav navbar-nav navbar-right">
<li>@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
</ul>
}
有关需要更改哪些内容的想法,无论用户当前所处的区域如何,都可以使用“注销”工作?
答案 0 :(得分:14)
正确的位置在Html.BeginForm(...)
参数范围内:
using (Html.BeginForm("LogOff", "Account", new { area = "" }, FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))