Html.BeginForm的默认区域是否始终是ASP.NET MVC中的当前区域?

时间:2013-06-06 19:51:44

标签: asp.net-mvc asp.net-mvc-routing asp.net-mvc-areas

我的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 })) {

这是否是正确的方法,即根据定义当前区域的默认区域?或者我的应用程序中存在配置问题?

1 个答案:

答案 0 :(得分:3)

这是正确的方法。 ASP.NET MVC隐式使用HTML帮助程序中的当前路由值。当您链接到同一控制器中的操作时,也可以通过说明操作名称来解决这个问题。如果要链接到另一个区域,则必须这样说明。