从区域内部的视图访问根控制器动作在区域=“0”时不起作用&”;
本文关键字:区域 不起作用 视图 内部 访问 控制器 | 更新日期: 2023-09-27 18:20:03
我在一个名为"应用程序"的区域内的视图中。
在这个视图中,我有这个链接:
@using (Html.BeginForm("LogOff","Account", FormMethod.Post, new { area = "", id = "logoutForm", @class = "navbar-right" }))
{
@Html.AntiForgeryToken()
<ul class="nav navbar-nav navbar-right">
<li>
@Html.ActionLink("Hello " + User.Identity.GetUserName() + "!", "Index", "Manage", routeValues: null, htmlAttributes: new { title = "Manage" })
</li>
<li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
</ul>
}
此ActionLink指的是具有操作"注销"的根控制器"AccountController"。
当我提交表单时,浏览器会在URL栏中显示:
http://localhost:61774/Application/Account/LogOff
但该路由不存在,因为尽管我设置了area = ""
,但它确实not在根控制器中查找
为什么它不起作用?
您正在使用Html.BeginForm()
的此重载,它将area
添加为html属性,而不是路由值。您需要使用此重载来添加路由值
@using (Html.BeginForm("LogOff","Account", new { area = "" }, FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))