2010-10-22 52 views
0

我有一个输入框,其中输入的值将被张贴到Action参数。 但我也希望值,以反映在这样的网址:如何将输入字段值传递给路由对象?

www.my-site.com/search/myquery

就如何实现这一目标的任何想法?

这里是代码..

搜索表单

 


     <% using(Html.BeginForm("Index", "Search")) { %> 

      <%: Html.TextBox("query", "Enter Keyword") %> 

     <% } %> 
 

全球ASAX

 

routes.Add("Search", new Route(
       "Search/{query}", 
       new { controller = "Search", action ="Index", query="" } 
      )); 

 

控制器

 


public ActionResult Index(string query) 
     { 
return new EmptyResult() 
    } 

 

回答

1

如果你想通过由输入的值用户进入查询字符串,你需要使用JavaScript。注册表单的submit事件并将其附加到URL。另一种可能性是使用GET动词而不是POST,后者会自动将它附加到查询字符串中(但在这种情况下,您应该使用不同的动作名称,因为不能有两个具有相同名称和相同动词的动作)。

<% using (Html.BeginForm("Index", "Search", FormMethod.Get)) { %> 
    <%: Html.TextBox("query", "Enter Keyword") %> 
    <input type="submit" value="OK" /> 
<% } %> 
相关问题