我目前正在使用 ajax 和 jquery 更改下拉列表的内容,并从数据库中填充。使用 jquery,我可以很好地清除并添加到下拉列表中。当我试图点击控制器以点击数据库以获取填充第二个下拉列表所需的信息时,我的问题就出现了。
我怎样才能使这项工作?我花了三天时间阅读其他 SO 问题,希望找到答案,这是我到目前为止的 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 找到语法,因为我正在使用 MVC 2。