1

私の現在のコードでは、record反復できるリストとして返されません。代わりに、関数を通過System.Collections.Generic.List'1[ProjectName.BodyStyle]$.eachます。

私が必要としているのは、ドロップダウンを埋めるためIDのリストです。BodyStyle1これが私のコードです:

サーバー側コントローラー:

Function Index(ByVal KovID As String) As List(Of BodyStyle)
            Dim db As New Database1Entities
            Dim record As New List(Of BodyStyle)
            record = (From b In db.BodyStyles Where b.KovID = KovID Select b).ToList
            Return record
        End Function

Jクエリ:

function ajaxSuccess(record) {
        var drop2 = $('#Vehicle_BodyStyle_value');
        drop2.get(0).options.length = 0;
        drop2.get(0).options[0] = new Option("Please Select One", "-1");
        $.each(record, function (index, item) {
            alert(index);
            alert(item);
            drop2.get(0).options[drop2.get(0).options.length] = new Option(item.Display, item.Value);
        });
    }

    function ajaxError() {
        $('#Vehicle_BodyStyle_value').get(0).options.length = 0;
        $('#Vehicle_BodyStyle_value').get(0).options[0] = new Option("Error!", "-1");
        alert("Failed to load styles");
    }

    $('#Vehicle_KovId_value').change(function () {
        var kovID = $(this).val();
        var drop2 = $('#Vehicle_BodyStyle_value');
        if (kovID != null && kovID != '') {
            drop2.get(0).options.length = 0;
            drop2.get(0).options[0] = new Option('Please Select One', '-1');
            $.ajax({
                type: "GET",
                url: '/Ajax/Index',
                async: false,
                data: { KovID: kovID },
                contentType: "application/object; charset=utf-8",
                success: ajaxSuccess,
                error: ajaxError
            });
        }
    });

私がしなければならないことはrecord、私が通過して情報を引き出すことができるものとして戻ることです. どんな助けでも大歓迎です!

4

1 に答える 1

2

サーバー側のコードで WebAPI メソッドを使用している場合は、JSON にシリアル化されると予想されますが、ここでは不明な理由により、それは行われていないようです。どういうわけか、List(Of BodyStyle)文字列に変換されているだけで、その出力が得られます。

この WebAPI 機能をより慣用的なものにするために他にもやるべきことがあると思いますが、ピンチの場合はJavaScriptSerializerobjectを使用して JSON シリアル化された文字列をいつでも手動で返すことができます。

メソッドのシグネチャを変更して、文字列を返すようにします。

Function Index(ByVal KovID As String) As String

次に、オブジェクトのシリアル化された文字列を返します。

Return New JavaScriptSerializer().Serialize(record)
于 2013-10-07T21:05:55.943 に答える