如何将文本框值传递到asp.net mvc中的查询字符串中

时间:2009-06-25 07:28:48

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

又是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"} 
        );

任何人都可以填补这里的空白:)。任何评论都赞赏。

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

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

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

我想那会是这样的:

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

答案 2 :(得分:0)

这就是我所做的:

<% 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
    }