2015-02-12 100 views
10

请我工作的MVC网站,我有一个搜索页面和索引页上的另一个搜索表单。我想在索引页面点击搜索按钮时调用相同的搜索页面控制器。以下是我的按钮在索引页上的方式。如何调用控制器从按钮点击在asp.net MVC 4

<span class="input-group-btn"> 
     <button class="btn btn-info" type="button" id="addressSearch" 
      onclick="location.href='<%: @Url.Action("List", "Search") %>'"> 
    Search</button></span> 

列表是我的搜索操作从搜索页和搜索是控制器的名称。 %20 /搜索/列表%20%>

显示错误的请求:当我点击上面的按钮,它的形式

http://localhost:52050/ <%返回URL。我怀疑它从我的路由,我不知道如何实现这一点,请任何帮助,将不胜感激。

下面是我的路由怎么

routes.MapRoute(
       name: null, 
       url: "Page{page}", 
       defaults: new { Controller = "Search", action = "List" } 
       ); 


      routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new 
      { 
       controller = "Home", 
       action = "Index", 
       id = UrlParameter.Optional 
      } 
      ); 
+0

使用@ Html.Actionlink(),而按钮用于导航目的 – 2015-02-12 06:58:12

回答

21

你混合剃刀ASPX语法,如果您的视图引擎是剃刀只是这样做:

<button class="btn btn-info" type="button" id="addressSearch" 
      onclick="location.href='@Url.Action("List", "Search")'"> 
+0

谢谢你的男人。从来没有,但会有所作为。非常感谢你 – 2015-02-12 07:12:10

+0

@NuruSalihu你应该在asp.net中学习视图引擎mvc – 2015-02-12 07:34:40

+0

Yah会这样做,现在我的Dropdown选择值已经很困难了。它不会改变。 :( – 2015-02-12 07:45:42

6

试试这个:

@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute) 

在你的代码应该是,

@Html.ActionLink("Search", "List", "Search", new{@class="btn btn-info", @id="addressSearch"})