我的Razor布局视图中有以下代码(由我的应用程序中的所有视图共享):
@using (Html.BeginForm("Logout", "Account", FormMethod.Post, new { id = ViewIDs.Shared._AuthenticationPartial.LogoutForm })) {
这适用于我的家庭和帐户视图,即它呈现了一个发布到〜/ Account / Logout的表单。但是,当与名为" Person"的区域内的视图一起使用时,它突然发布到〜/ Person / Account / Logout。
现在,我能够按如下方式修复此问题:
@using (Html.BeginForm("Logout", "Account", new { area = "" }, FormMethod.Post, new { id = ViewIDs.Shared._AuthenticationPartial.LogoutForm })) {
这是否是正确的方法,即根据定义当前区域的默认区域?或者我的应用程序中存在配置问题?
答案 0 :(得分:3)
这是正确的方法。 ASP.NET MVC隐式使用HTML帮助程序中的当前路由值。当您链接到同一控制器中的操作时,也可以通过说明操作名称来解决这个问题。如果要链接到另一个区域,则必须这样说明。