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

我在我的Razor Layout视图中有以下代码片段(由我的应用程序中的所有视图共享):

@using (Html.BeginForm("Logout", "Account", FormMethod.Post, new { id = ViewIDs.Shared._AuthenticationPartial.LogoutForm })) {

这对我的主页和帐户视图有效,即,它呈现了张贴到〜/帐户/注销的表单。 但是,当在名为“Person”的区域内使用视图时,它会突然发布到〜/ Person / Account / Logout。

现在,我能够解决这个问题如下:

@using (Html.BeginForm("Logout", "Account", new { area = "" }, FormMethod.Post, new { id = ViewIDs.Shared._AuthenticationPartial.LogoutForm })) {

这是否是正确的方式来做到这一点,即根据定义的当前区域是默认区域? 或者我的应用程序中有配置问题?


这是正确的方式。 ASP.NET MVC隐式地在HTML助手中使用当前路由值。也就是说,当您链接到同一控制器中的操作时,只需指定操作名称即可。 如果你连接到另一个区域,你必须像这样说明它。

链接地址: http://www.djcxy.com/p/14057.html

上一篇: Is the default area for Html.BeginForm always the current area in ASP.NET MVC?

下一篇: How to log dimension like AWS CloudWatch bundled metric