2014-05-04 100 views
3

我有一個Ajax.BeginForm調用,它應該返回一個局部視圖,但是將頁面重新路由到Action。有什麼不對的想法?Ajax.BeginForm路由到新頁面而不是局部視圖

這裏是我要渲染的局部視圖的主網頁的代碼:

<div class="col-md-6"> 
     @using (Ajax.BeginForm("Search", "Home", new AjaxOptions 
     { 
      HttpMethod = "GET", 
      InsertionMode = InsertionMode.Replace, 
      UpdateTargetId = "searchResults" 
     })) 
     { 

     <div class="form-group" style="width:85%;"> 
      <div class="right-inner-addon"> 
       <i class=" glyphicon glyphicon-search"></i> 
       <input type="text" data-autocomplete="@Url.Action("Quicksearch","Home")" class="form-control" placeholder="Search" name="q" /> 
      </div> 
     </div> 
     <div class="form-group"> 
      <button class="btn btn-default form-inline" type="submit">Search</button> 
     </div> 
     } 
     <br /> 

    </div> 

</div> 
<div id="searchResults"> 

</div> 

這裏是局部視圖(除去由於長度項):

<div class="row" id="searchResults"> 
    ...removed form elements 
     <div class="row"> 
      <table class="table"> 
    ....stuff 
    </table> 
    </div> 
</div> 

這裏是控制器:

public PartialViewResult Search(string q) 
    { 
     var items = db.items_with_descriptions 
      .Where(r => r.name.Contains(q) || string.IsNullOrEmpty(q)) 
      .Take(10); 
     return PartialView("_Items", items); 
    } 

如上所述,當我點擊我的搜索按鈕時,它會重定向到localhost:24942/Home/Search,而不是停留在頁面上,只需加載局部視圖。我是MVC的新手,請記住這一點。 :)

+1

是包含在你頁面的jQuery的不顯眼的js文件?如果它不是,你通常會得到你描述的行爲 – thsorens

+0

我剛剛發現自己問題實際上。 :)我錯過了js文件。如果你發佈答案,我會給你信用。 – Yecats

回答

6

jQuery的,不顯眼的js文件已經被包含在你的頁面,使ajax.beginform工作

相關問題