0

我目前正在使用 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。

4

1 回答 1

3

这里的问题出在通话中。

$.ajax({
                type: "POST",
                url: "AjaxController/Index",
                async: true,
                data: "{KovID:" + kovID + "}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",

类型和 url 都不正确。我应该是:

$.ajax({
            type: "GET",
            url: '/Ajax/Index',
            async: false,
            data: { KovID: kovID },
            contentType: "application/json; charset=utf-8",
            dataType: "json",
于 2014-01-14T15:37:43.217 回答