Asp.net mvc 在区域内的视图中生成错误的操作链接

Asp.net mvc 在区域内的视图中生成错误的操作链接,asp.net-mvc,asp.net-mvc-4,razor,Asp.net Mvc,Asp.net Mvc 4,Razor,我正在“区域->视图->主页”中使用main _Layout.cshtml作为我的Index.cshtml。 因此,注销和登录链接生成错误(位于main _LogOnPartial.cshtml中) i、 e.生成为“http://localhost/Admin/User/LogOff”,但应生成为“http://localhost/User/LogOff” _logonnPartial.cshtml代码 <div class="btn-group pull-right">

我正在“区域->视图->主页”中使用main _Layout.cshtml作为我的Index.cshtml。 因此,注销和登录链接生成错误(位于main _LogOnPartial.cshtml中)

i、 e.生成为“http://localhost/Admin/User/LogOff”,但应生成为“http://localhost/User/LogOff”

_logonnPartial.cshtml代码

<div class="btn-group pull-right">
    @if (Request.IsAuthenticated)
    {
        <text>
        @* Welcome <strong>@User.Identity.Name</strong>!*@

        @Html.ActionLink("Log Off", "LogOff", "User", null, new { @class = "btn btn-action btn-first" })  </text>
    }
    else
    {
        <text>@Html.ActionLink("Log In", "Login", "User", null, new { @class = "btn btn-action btn-last" }) @Html.ActionLink("Register", "Register", "User", null, new { @class = "btn btn-action" })</text>
    }
</div>

@如果(请求已验证)
{
@*欢迎@User.Identity.Name*@
@ActionLink(“注销”,“注销”,“用户”,空,新{@class=“btn btn action btn first”})
}
其他的
{
@ActionLink(“登录”,“登录”,“用户”,null,新建{@class=“btn btn action btn last”})@Html.ActionLink(“注册”,“注册”,“用户”,null,新建{@class=“btn btn action”})
}

如果要生成不以区域为目标的URL,需要确保清除区域路由值。可以通过将区域布线值设置为空字符串来实现这一点

例如:

@Html.ActionLink("Log Off", "LogOff", "User", new { area = "" }, new { @class = "btn btn-action btn-first" })

这样,无论渲染的视图是否在某个区域内,共享部分中的链接都将始终为“根”控制器生成。

如何生成链接?这与我们在_LogOnPartial.cshtml中使用的逻辑相同