これは.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>
それは非常にうまく機能します。
私の他のプロジェクトでも、すべて問題なく動作します。
助けてくれて本当にありがとう。