Asp.net mvc 从POST重构HTML标记以获取
我在ASP.NET MVC视图中有以下标记(这是一个搜索框):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 作为一种解决方法,如果默认行为不适合您,您可以捕获表单的提交事件,并执
此代码按预期工作,但在此处使用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