Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 如何使用Asp MVC自定义表单的url?_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 如何使用Asp MVC自定义表单的url?

Asp.net mvc 3 如何使用Asp MVC自定义表单的url?,asp.net-mvc-3,Asp.net Mvc 3,我正在向Asp Mvc添加搜索框 这是表单的html: @using (Html.BeginForm("Query", "Search", FormMethod.Get)) { <input type="text" name="q" /> <input type="submit" value="Seach" /> } 我希望表单生成一个类似http://localhost:####/q=value 在文本框中 是否可以更改MVC生成url的方式?这是我目

我正在向Asp Mvc添加搜索框

这是表单的html:

@using (Html.BeginForm("Query", "Search", FormMethod.Get))
{
    <input type="text" name="q" />
    <input type="submit" value="Seach" />
}
我希望表单生成一个类似
http://localhost:####/q=value 在文本框中

是否可以更改MVC生成url的方式?这是我目前得到的:

http://localhost:50916/Search/Query?q=value in textbox
根据
=
符号是用于分隔参数和参数值的保留字符,您不应该在URI的这一部分使用它。您可能得到的最接近的结果是
http://localhost:####/?q=value

事实上,您可以使用这样的路由作为传入URL,ASP.NET MVC将正确解析它并将其分派到正确的控制器操作。问题在于
标记。有两个可能的动词:GET和POST。如果使用POST,表单中输入的参数将在请求正文中发送,而不会显示在URL中。如果根据规范使用GET,则用户代理将在追加
后,通过向表单的操作追加输入字段的键/值对来发送请求


因此,除非您使用一些javascript来处理表单的
onsubmit
事件,取消默认提交并将
window.location
更改为所需格式,否则无法达到预期效果。问题是:您真的需要这么做吗?

如果您需要对目标URL进行更具体的控制,您可以使用标准的HTML表单标记而不是HTML助手

http://localhost:50916/Search/Query?q=value in textbox