我正在使用ASP.NET MVC Preview 4,并想知道如何使用路由引擎进行表单提交.
例如,我有这样的路线:
routes.MapRoute( "TestController-TestAction", "TestController.mvc/TestAction/{paramName}", new { controller = "TestController", action = "TestAction", id = "TestTopic" } );
一个表单声明如下:
<% using (Html.Form("TestController", "TestAction", FormMethod.Get)) { %> <% } %>
它呈现给:
表单提交的结果URL是:
localhost/TestController.mvc/TestAction?paramName=value
有没有办法让这个表单提交路由到所需的URL:
localhost/TestController.mvc/TestAction/value
我能想到的唯一解决方案是创建一个单独的操作,只检查请求参数,或使用Javascript.
解:
public ActionResult TestAction(string paramName) { if (!String.IsNullOrEmpty(Request["paramName"])) { return RedirectToAction("TestAction", new { paramName = Request["paramName"]}); } /* ... */ }