0

現在、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の新しいバージョンの構文を見つけているのかわかりません。

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 に答える