加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 22:43:38 所属栏目:asp.Net 来源:网络整理
导读:我正在使用ASP.NET MVC Preview 4,并想知道如何使用路由引擎进行表单提交. 例如,我有一条这样的路线: routes.MapRoute( "TestController-TestAction","TestController.mvc/TestAction/{paramName}",new { controller = "TestController",action = "TestActi
我正在使用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"]});
    }
    /* ... */
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读