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

ibo*_*eno 1 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" /> <%} %>
Run Code Online (Sandbox Code Playgroud)

我不确定如何设置Html.BeginForm,因此它抓取submitSearch值并将其传递给/ Search?s = valueHere.这似乎我错过了一些简单的事情.

Tom*_*han 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" />
<% } %>
Run Code Online (Sandbox Code Playgroud)

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