【问题标题】:ASP.NET MVC Create querystring from formASP.NET MVC 从表单创建查询字符串
【发布时间】:2010-09-13 15:10:27
【问题描述】:

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

<% 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。这似乎我错过了一些简单的东西。

【问题讨论】:

  • 为什么你的 HTML &lt;input&gt; 标签使用 runat 属性?

标签: asp.net-mvc query-string


【解决方案1】:

需要将输入框上的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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    相关资源
    最近更新 更多