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.cssjquery-ui.js、 、jquery.unobtrusive-ajax.min.jsを追加しましたmodernizr-1.7.min.js

検索ボタンは非常にうまく機能しますが、QuickSearch メソッドにブレークポイントを設定してデバッグすると、メソッドを呼び出さなくてもオートコンプリートがまったく機能せず、メソッドが呼び出されて実行されません。しかし、これのために

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

それは非常にうまく機能します。

私の他のプロジェクトでも、すべて問題なく動作します。

助けてくれて本当にありがとう。

4

1 に答える 1