7

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

这是执行此操作的正确方法吗,即默认区域是否定义为当前区域?还是我的应用程序中存在配置问题?

4

1 回答 1

3

这是正确的方式。ASP.NET MVC 隐式使用 HTML 帮助程序中的当前路由值。这也是您在链接到同一控制器中的操作时只需声明操作名称的方式。如果您要链接到另一个区域,则必须这样声明。

于 2013-06-06T19:58:19.463 回答