我正在使用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)) { %> <input type="text" name="paramName" /> <input type="submit" /> <% } %>
它呈现:
<form method="get" action="/TestController.mvc/TestAction"> <input type="text" name="paramName" /> <input type="submit" /> </form>
表单提交的结果网址是:
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"]}); } /* ... */ }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。