Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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 从POST重构HTML标记以获取_Asp.net Mvc_Http Post_Forms_Http Get - Fatal编程技术网

Asp.net mvc 从POST重构HTML标记以获取

Asp.net mvc 从POST重构HTML标记以获取,asp.net-mvc,http-post,forms,http-get,Asp.net Mvc,Http Post,Forms,Http Get,我在ASP.NET MVC视图中有以下标记(这是一个搜索框): 此代码按预期工作,但在此处使用post会导致问题 如何更改此标记以将搜索查询作为URL参数传递?我真的不知道如何处理这一问题,即保留现有标记,然后从控制器重定向。我认为一定有比这更有效的方法。您应该能够将method=“post”更改为method=“get”,并获得所需的结果。具有get方法设置的表单按照其默认行为将表单中的字段推送到querystring 作为一种解决方法,如果默认行为不适合您,您可以捕获表单的提交事件,并执

我在ASP.NET MVC视图中有以下标记(这是一个搜索框):


此代码按预期工作,但在此处使用post会导致问题


如何更改此标记以将搜索查询作为URL参数传递?我真的不知道如何处理这一问题,即保留现有标记,然后从控制器重定向。我认为一定有比这更有效的方法。

您应该能够将
method=“post”
更改为
method=“get”
,并获得所需的结果。具有get方法设置的表单按照其默认行为将表单中的字段推送到querystring

作为一种解决方法,如果默认行为不适合您,您可以捕获表单的提交事件,并执行以下操作:

window.location = form.action + "?SearchTerm=" + document.getElementById("SearchTerm").value

类似的,其中form是对form元素的引用。您可以使用javascript构建链接并重定向,这是一个get请求。

如果您使用method=“get”,它不是很自然地在querystring中传递searchterm值吗?只是出于好奇,您在post操作中遇到了什么问题?@JonathanWood您应该研究PRG模式。发布、重定向、获取。或者你也可以使用AJAX发布。是的,这非常有效,不需要进一步修改。谢谢
window.location = form.action + "?SearchTerm=" + document.getElementById("SearchTerm").value