我有一个简单的表单,发布到一个HttpPost动作方法,返回其相应的视图.我的问题是我收到了404 Not Found错误.奇怪的是,如果我将action方法和action方法的属性更改为a GET,那么它就可以工作并显示TestMethod视图.
似乎我错过了使用的东西POST,但我在其他控制器中的帖子工作正常(例如帐户登录和注册).请注意,该AllowAnonymous属性是一个自定义属性,可以指定允许匿名访问的控制器或操作,而不是指定(通过Authorizeattr)需要授权的控制器或操作.我想没有什么是不可能的,但我认为这与我的问题没有任何关系.什么错误的想法?
形成:
@using (Html.BeginForm("TestMethod", "Test", FormMethod.Post, new { @id = "testForm" })) {
<fieldset>
<legend>Test Form</legend>
<input type="submit" value="Submit" />
</fieldset>
}
Run Code Online (Sandbox Code Playgroud)
控制器行动:
[AllowAnonymous]
[HttpPost]
public ActionResult TestMethod() {
return View();
}
Run Code Online (Sandbox Code Playgroud)
视图:
<h2>TestMethod</h2>
<p>HttpPost method was successful.</p>
Run Code Online (Sandbox Code Playgroud)
从Global.asax.cs注册路由方法:
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("favicon.ico");
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// About
routes.MapRoute(
"About", // Route name
"about", // URL with parameters
new { controller = "Home", action …Run Code Online (Sandbox Code Playgroud)