Asp.net mvc ASP.NET MVC-重写FormMethod.Get querystring?

Asp.net mvc ASP.NET MVC-重写FormMethod.Get querystring?,asp.net-mvc,routing,query-string,Asp.net Mvc,Routing,Query String,我有一个简单的表单,只有一个文本框和一个提交按钮。表单基本上发送到另一个页面,文本框中的值为querystring。单击“提交”按钮时,查询字符串的格式如下,例如: mysite.com/?TargetCode=Test1 我希望它以以下格式显示:mysite.com/Test1 我在我的HomeController中已经有一个操作,将“TargetCode”作为查询字符串,并且我已经在Global.ascx.cs中为此设置了一个路由。我应该怎么做才能重新编写querystring,使其在UR

我有一个简单的表单,只有一个文本框和一个提交按钮。表单基本上发送到另一个页面,文本框中的值为querystring。单击“提交”按钮时,查询字符串的格式如下,例如:

mysite.com/?TargetCode=Test1
我希望它以以下格式显示:
mysite.com/Test1

我在我的
HomeController
中已经有一个操作,将“TargetCode”作为查询字符串,并且我已经在
Global.ascx.cs
中为此设置了一个路由。我应该怎么做才能重新编写querystring,使其在URL中没有“?TargetCode=”?以下是我的表格代码:

<% using (Html.BeginForm("Index", "Home", FormMethod.Get, new { id = "CodeForm" }))

我认为您必须使用jQuery进行提交,否则您将依赖于浏览器如何构造URL更新了,在验证插件中包含一个钩子

$('#CodeForm').submit( function() {
     var $form = $(this);
     if ($form.valid()) {
        window.location.href = $form.attr('action')
                                  + '/'
                                  + $('[name=TargetCode]').val();
     }
     return false;
});

完全重复:实际上,我的另一个问题是关于我的索引(字符串目标)操作没有拾取查询字符串,它现在工作正常。这个问题是关于如何重写我的URL。谢谢:)您好,我还在使用jQuery验证库来确保文本框中有值(必填字段)。当我使用您发布的jQuery函数时,它通过了验证。以下是我所拥有的:$(document.ready(function(){$(“#CodeForm”).validate();$('#CodeForm').submit(function(){window.location.href='/'+$('[name=TargetCode]')).val();return false;});谢谢,肯尼。所以在提交前检查一下表格是否有效。