現在、ajax と jquery を使用してドロップダウン リストの内容を変更し、データベースから入力する作業を行っています。jqueryを使用すると、ドロップダウンをクリアして追加できます。私の問題は、2 番目のドロップダウンを埋めるために必要な情報を取得するために、コントローラーをヒットしてデータベースをヒットしようとしたときに発生します。
どうすればこれを機能させることができますか?答えを見つけることを期待して、他のSOの質問を3日間読みました。これまでのところ、jqueryコードは次のとおりです。
$('#Vehicle_KovId_value').change(function () {
var kovID = $(this).val();
if (kovID != null && kovID != '') {
$('#Vehicle_BodyStyle_value').get(0).options.length = 0;
$('#Vehicle_BodyStyle_value').get(0).options[0] = new Option('Please Select One', '-1');
$.ajax({
type: "POST",
url: "AjaxController/Index",
async: true,
data: "{KovID:" + kovID + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$('#Vehicle_BodyStyle_value').get(0).options.length = 0;
$('#Vehicle_BodyStyle_value').get(0).options[0] = new Option("Please Select One", "-1");
alert("Worked!");
$.each(msg.d, function (index, item) {
$('#Vehicle_BodyStyle_value').get(0).options[$('#Vehicle_BodyStyle_value').get(0).options.length] = new Option(item.Display, item.Value);
});
},
error: function () {
$('#Vehicle_BodyStyle_value').get(0).options.length = 0;
alert("Failed to load styles");
}
});
}
});
上記のコードで、次のようないくつかの異なる URL 設定を試しました。
url: "@Url.Action('AjaxController', 'Index')",
url: "/AjaxController/Index",
url: "/Controllers/AjaxController/Index",
url: "Controllers/AjaxController/Index"
参考までに、コントローラーについてはまだ実際には何もしていませんが、コントローラーのコードは次のとおりです。
Namespace NoticeOfSale
Public Class AjaxController
Inherits System.Web.Mvc.Controller
'
' GET: /Ajax
Function Index() As ActionResult
Return View()
End Function
End Class
End Namespace
MVC 2を使用しているため、構文が間違っているだけなのか、MVCの新しいバージョンの構文を見つけているのかわかりません。