Asp.net mvc ASP.NET MVC-重写FormMethod.Get querystring?
我有一个简单的表单,只有一个文本框和一个提交按钮。表单基本上发送到另一个页面,文本框中的值为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
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;});谢谢,肯尼。所以在提交前检查一下表格是否有效。