asp.net-mvc – 在ASP.NET MVC Preview 4中使用路由引擎进行表单提交

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 在ASP.NET MVC Preview 4中使用路由引擎进行表单提交前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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"]});
    }
    /* ... */
}

猜你在找的asp.Net相关文章