ASP.NET MVC - 重写FormMethod.Get查询字符串?

时间:2009-10-15 18:24:11

标签: asp.net-mvc routing query-string

我有一个简单的表单,只有一个文本框和一个提交按钮。表单基本上发送到不同的页面,文本框中的值为querystring。当我单击提交按钮时,查询字符串采用这种格式,例如:

mysite.com/?TargetCode=Test1

我希望以这种格式显示:mysite.com/Test1

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

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

1 个答案:

答案 0 :(得分:0)

我认为您必须使用jQuery来提交,否则您将依赖于浏览器构建URL的方式。 更新以在验证插件中包含一个挂钩。

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