2013-07-05 70 views
0

這是我在.cshtml快速搜索決不會被調用

@using (Ajax.BeginForm("Search","Home", 
    new AjaxOptions 
    { 
     UpdateTargetId = "SearchResults", 
     HttpMethod ="GET", 
     InsertionMode = InsertionMode.Replace 
    } 
)) 
{ 
    <input type="text" id="q" data-autocomplete="@Url.Action("QuickSearch", "Home")" /> 
    <input type="submit" value="Search" /> 
} 
<table id="SearchResults"> 
</table> 

和.js文件代碼:

$(document).ready(function() { 
    $(":input[data-autocomplete]").each(function() { 
     $(this).autocomplete({ source: $(this).attr("data-autocomplete") }); 
    }); 
}); 

和HomeController.cs我的快速搜索是:

public ActionResult QuickSearch(string term) 
{ 
    var _restaurant = context.Books.Where(r => r.BookTitle.Contains(term)) 
        .Take(10) 
        .Select(r => new 
        { 
         label = r.BookTitle 
        }); 
    return Json(_restaurant, JsonRequestBehavior.AllowGet); 
} 

並添加了jquery-1.5.1.min.js,jquery-ui.css,jquery-ui.js,jquery.unobtrusive-ajax.min.js,modernizr-1.7.min.js

我的搜索按鈕工作得很好,但我的自動完成功能完全不工作,甚至在我將斷點放在QuickSearch方法上時調用該方法,並調試它從不調用並執行該方法。 但 此

<a href="@Url.Action("QuickSearch", "Home")">url</a> 

它工作得很好。

也在我的其他項目中一切正常,沒有問題。

我真的很感激任何幫助。

+2

在您在自動填充框中輸入值後,您應該看看瀏覽器控制檯,看看您是否有任何錯誤。 – archil

回答

0

我解決了這個問題。 我在我的頁面中的部分觀點,即有這些頂部:

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

,所以我刪除了從局部視圖這個腳本塊和現在的工作。