外部JSファイルにjquery関数を記述し、必要な場所にそのファイルを含めました。
jquery関数で、コントローラーからアクションメソッドを呼び出しました。今私の問題は、外部 JS からそのアクション メソッド パスを見つけることができないことです。そのようにメソッドが見つからないというエラーをスローしています。
これで、どこからでも機能する外部JSにアクションパス名を書き込む方法がわかりました。
アクションメソッドの言及/呼び出しについて、次のことを試しました-
1. url: "/Employee/AutocompleteSuggestions"
2. url: "AutocompleteSuggestions"
3. @Html.Raw(Url.Action("AutocompleteSuggestions", "Employee", new { @term = "Term", @moduleName="ModuleName"}))
かみそりの構文のため、3番目は機能しません。
この問題を解決するには?
以下のようにJSを使用しました-
$.ajax({
url: "AutocompleteSuggestions",
dataType: "json",
contentType: "application/json; charset=utf-8",
type: "POST",
data:
JSON.stringify({
term: request.term,
moduleName: "Employee"
}),
success: function (data) {
response($.map(data, function (item) {
return { label: item.FullName, value: item.Id }
}
))
},
error: function (xhr, ajaxOptions, thrownError) { alert(thrownError); }
})