私はオートコンプリートテキストボックスの例から学ぶ初心者です。私が理解していないのは、コントローラーの「AutoCompleteHelper」関数にあります。入力には「term」という名前を付ける必要があります。「mystr」や「reqstr」など、別の名前を付けると、デバッグ中、入力は常に「null」と表示されます。.jsと.cshtmlの他の場所で「用語」を定義しませんでした。実際、.cshtmlファイルではname="q"と呼んでいます。「用語」という名前を使わせているのはなぜですか?
コントローラーコード:
string[] txtlst = {"ActionScript", "AppleScript",
"Asp", "BASIC", "C", "C++", "Clojure",
"COBOL", "ColdFusion", "Erlang", "Fortran",
"Groovy", "Haskell", "Java", "JavaScript",
"Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme"};
public JsonResult AutoCompleteHelper(string term) {
if (!Request.IsAjaxRequest()) return null;
var lst = txtlst.Where(s => s.StartsWith(term)).ToList();
var res = lst.Select(x => new { value = x, label = x });
return Json(res, JsonRequestBehavior.AllowGet);
}
.jsコード:
$("input[data-autocomplete-source]").each(function () {
$(this).autocomplete({ source: $(this).attr("data-autocomplete-source") });
});
});
.cshtmlコード:
<p>Auto Complete Example</p>
<input type="text" name="q" data-autocomplete-source="@Url.Action("AutoCompleteHelper", "Home")" />
私は何かを見落としている/誤解していますか?パラメータ名として「term」を使用するように修正された理由がわかりません。