Asp.net mvc 2 Asp.net MVC路由查询

Asp.net mvc 2 Asp.net MVC路由查询,asp.net-mvc-2,routes,Asp.net Mvc 2,Routes,我有如下表格:- <% using ( Html.BeginForm("search", "home", FormMethod.Get) ) { %> <%= Html.TextBox("location", "") %> <input type="submit" value="Search All Jobs" /> <% } %> 现在,每当我点击submit按钮,我就会得到如下url 但是我想要 有什么想法吗?你得到的url是正常的,

我有如下表格:-

<% using ( Html.BeginForm("search", "home", FormMethod.Get) ) { %>

<%= Html.TextBox("location", "") %>
<input type="submit" value="Search All Jobs" />

<% } %>
现在,每当我点击submit按钮,我就会得到如下url

但是我想要


有什么想法吗?

你得到的url是正常的,这就是根据GET参数由浏览器发送的方式,你对此无能为力

使用HTTP“get”方法,表单 数据集被附加到URI 由action属性指定 (带问号(“?”)作为 分隔符)并将此新URI发送到 加工剂

最好的选择是javascript拦截表单提交,取消默认操作并重写url。就我个人而言,我不会为此而烦恼,而是让浏览器按照规范中的定义发送用户输入

但如果您真的坚持要实现这一点,下面是一个javascript示例:

$('form').submit(function() {
    var location = encodeURIComponent($('#location').val());
    var url = '<%= Url.Action("search", "home", new { location = "_TO_REPLACE_" }) %>';
    window.location.href = url.replace('_TO_REPLACE_', location);
    return false;
});
$('form')。提交(函数(){
var location=encodeURIComponent($('#location').val());
var url='';
window.location.href=url.replace(“'u TO'u replace'”,位置);
返回false;
});

实际上,这里不需要任何表单,只需实现
onclick
event on submit按钮,将位置值附加到URL中,并使用此javascript代码执行GET请求即可

var loc = document.getElementById("location");
document.location.href = "/home/search/"+loc.value;

@约翰·韦尔登,恐怕是你错过了这个问题的重点。OP想要
http://localhost/home/search/karachi
使用
method=“GET”
提交表单后作为url。Url路由与答案无关,也与服务器上如何声明操作无关。让我补充一点,我在搜索页面上有一个分页控件(自制),它将正确生成所需的链接。在生成@Zohaib时,这是因为分页控件使用Html.ActionLink生成url。使用HTML
这是不可能的。你应该使用javascript,我相信这是实现你所追求目标的唯一途径。@John Weldon,告诉我如何实现这一点?可能是,我们达成和解。对;您的分页控件可能不使用form GET,而是使用ActionLink。谢谢,伙计,javascript是唯一的解决方案。
var loc = document.getElementById("location");
document.location.href = "/home/search/"+loc.value;