2013-07-05 37 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> 

,所以我删除了从局部视图这个脚本块和现在的工作。