オートコンプリートが機能しています。私の検索方法は HomeController にありますが、いくつか変更を加えたいと思っています。「Vacancy」という名前の API コントローラーを作成し、そこに Search メソッドを転送しましたが、動作させることができません: Status Code:404 Not Found (Search method も開始されません)。私が行ったすべての変更を転送した後は次のとおりです。
ビューのソース リンクを変更:
data-autocomplete="@Url.Action("Search", "Vacancy")"
変更された検索方法:
public object Search(string term)
{
var vacancyHeaders =
new UnitOfWork().Repository<Vacancy>()
.Get()
.Where(v => v.Header.ToLower().Contains(term.ToLower()))
.Select(v => new { label = v.Header })
.Distinct()
.Take(10);
return vacancyHeaders;
}
助けてください、なぜ私の検索方法が始まらないのですか? 以下は、APIコントローラーのない私の作業コードです:
意見:
<form data-bind="submit: search">
<input data-bind="value: SearchArgument, valueUpdate: 'blur'" data-autocomplete="@Url.Action("Search", "Home")" class="form-text" name="search" size="32" maxlength="64" placeholder="Search"/>
<input type="submit" value="search" />
</form>
脚本
$(":input[data-autocomplete]").each(function() {
$(this).autocomplete({ source: $(this).attr("data-autocomplete")});
});
検索方法
public ActionResult Search(string term)
{
var vacancyHeaders =
new UnitOfWork().Repository<Vacancy>()
.Get()
.Where(v => v.Header.ToLower().Contains(term.ToLower()))
.Select(v => new { label = v.Header })
.Distinct()
.Take(10);
return Json(vacancyHeaders, JsonRequestBehavior.AllowGet);
}