【问题标题】:How to pass textbox value into query string in asp.net mvc如何将文本框值传递给asp.net mvc中的查询字符串
【发布时间】:2009-06-25 07:28:47
【问题描述】:

又一个使用 ASP.NET MVC 的新手!我要做的就是在我的页面上搜索一个搜索文本框,如果我输入一些内容并单击搜索,要重定向到的 url 最后应该有以下内容,就像在 stackoverflow 中一样,

/search?q=searchedtext

这就是我现在所拥有的,

<input id="searchText" maxlength="100" type="text" name="query" />
    <a href="???"  class="searchButton">        
        Search        
    </a>

我的控制器中有这样的功能,

public ActionResult Search(string query)
 {

 }

这是路线,

routes.MapRoute(
            "Search",                                            
            "Search",                          
            new { controller = "Posts", action = "Search"} 
        );

任何人都可以在这里填补空白:)。任何 cmet 表示赞赏。

【问题讨论】:

    标签: asp.net-mvc search textbox query-string


    【解决方案1】:

    您需要将该客户端代码包装在一个表单中:

    <form action="/Search" method="get">
       <input id="q" name="q" maxlength="100" type="text" />
       <input type="submit" id="submit" value="Search" />
    </form>
    

    【讨论】:

      【解决方案2】:

      用表单标签包装它,将它的方法设置为“GET”,使用输入类型='提交'提交表单(而不是'a'标签),将文本输入命名为查询(已经完成),接受查询作为字符串在参数中(已经完成),从控制器调用模型来处理请求,更新 V​​iewData.Model,返回适当的视图结果(部分,如果使用 AJAX)。

      如果您想通过 URL 而不是通过查询字符串键/值传递查询,
      您必须为此指定correct route

      我猜应该是这样的:

      routes.MapRoute(  
                  "Search", // Route name  
                  "search/{query}", // URL with parameters  
                  new 
                    { controller = "search", action = "search"}  // Parameter defaults
              );
      

      【讨论】:

      • 问题是它工作得很好。我得到了搜索页面和上面的结果。但 url 看起来像 /search。我想将查询字符串传递给它,以便 url 拥有它。我可以使用 jquery 更改该 achor 标记的 href 以填充文本框值,但这不是一个好的解决方案。
      • 如果您将使用表单并将其方法设置为“GET”,URL 将自动更改为“.../search?q=some text”。
      • 他是对的,听起来你传输数据的方法是 POST,而你真正想要的是 GET
      • 我以为我已经尝试过了,但我可能错过了一些东西。只需使用表单标签和设置方法来获取即可。亲爱的!谢谢阿尼斯。
      • 我很高兴它有帮助。实际上 - 我现在正在做同样的事情。试图创建一个通用的搜索机制。 :)
      【解决方案3】:

      这就是我所做的:

      <% Html.BeginForm("Search", "controller name", FormMethod.Get); %>
              <input id="criteria" name="criteria" maxlength="120" type="text" style="width:120px; " />
              <input type="image" alt="search" />
          <% Html.EndForm(); %>
      
      public ActionResult Search(string criteria)
          {
             //search code goes here
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-16
        • 1970-01-01
        • 2012-05-12
        • 2011-05-04
        相关资源
        最近更新 更多