重构HTML标记从POST到GET

时间:2012-06-01 19:15:38

标签: asp.net-mvc http-post html-form http-get

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

<form action="@Url.Action("Results", "Search")" method="post">
    <input type="text" class="search-query" id="SearchTerm" name="SearchTerm" />
</form>

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

如何更改此标记以将搜索查询作为URL参数传递?我真的不确定如何在保持现有标记然后从控制器重定向的情况下解决这个问题。我认为必须有一种更有效的方式。

1 个答案:

答案 0 :(得分:1)

您应该可以将method="post"更改为method="get"并获得所需的结果。该表单使用get方法设置,通过默认行为将表单中的字段推送到查询字符串。

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

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

类似的东西,其中form是对表单元素的引用。您可以使用javascript构建链接和重定向,这是一个获取请求。