ASP.NET MVC从表单创建查询字符串

时间:2010-09-13 15:10:27

标签: asp.net-mvc query-string

我正在尝试创建一个简单的搜索框,其结果类似http://www.example.com/Search?s=searchTerm我有路由设置,以便它接受这样的网址,并做正确的事情。我遇到的问题是获取表单来创建查询字符串。我尝试了很多变种:

<% using (Html.BeginForm("Search", "Home", FormMethod.Get, new { ???? })) {%>
<input id="submitSearch" class="searchBox" type="text" runat="server"/>
<input type="submit" value="Search" /> <%} %>

我不确定如何设置Html.BeginForm,因此它抓取submitSearch值并将其传递给/ Search?s = valueHere。这似乎让我很容易错过。

1 个答案:

答案 0 :(得分:10)

您需要在输入框中将name设置为s

<% using (Html.BeginForm("Search", "Home", FormMethod.Get, new { })) { %>
    <input id="s" name="s" class="searchBox" type="text" />
    <input type="submit" value="Search" />
<% } %>

另请注意,我也将id更改为s,因为通常的做法是为nameid设置相同的值。但是,只有name属性会影响请求中的查询字符串名称 正如David在评论中指出的那样,ASP.NET MVC中不需要runat="server"