1

以下は私が使用しているコードです。

UpdateMultipulGroupContactId = "1,2,3,4";

クライアントサイド機能

function UpdateMultipulGroup() {
    jQuery.ajax({
        url: "/Json/Contact_Update_Groups_NickName",
        type: "POST",
        data: {
            rid: UpdateMultipulGroupContactId,
            gids: strArray,
            nickname: 'abc'
        },
        dataType: "html",
        success: function (data) {
            var data = JSON.parse(data);
            alert(data.message);
            $("#Notes" + EditContactIdNotes).html($("#txtNotes").val());
            CloseLightBox();
        },
        error: function (error) {
            alert(error);
        }
    });

}

サーバーサイド機能

public ActionResult Contact_Update_Groups_NickName(long rid, List<long> gids, string nickname)

配列を使用してみましたが、常にnull値を取得しています。

UpdateMultipulGroupContactIdこの関数からリストとしてを渡すにはどうすればよいですか?

4

2 に答える 2

0

へのバインディングIList<T>

私のこのブログ投稿は、基本的にこの問題について話しているため、実質的に役立ちます。IList<T>コントローラー アクションでクライアント データを にバインドする方法。

ブログ投稿では、値は実際には次のようにインデックス化する必要があると説明しています

gids[0] = 1;
gids[1] = 2;

複雑な JSON オブジェクトの送信

しかし、複雑な JSON オブジェクトから、MVC モデル バインダーで簡単に使用できるオブジェクトへのすべての変換を行う、非常に単純な jQuery プラグインも作成しました。また、さまざまなデータ型 (日付など) を使用し、Asp.net MVC がサーバー側で変更を加えなくてもすぐに機能するように正しく変換することもできます。

複雑なオブジェクトとは、複数レベルの階層の深さを持つ JSON オブジェクトを意味します。JSON オブジェクトが複雑になればなるほど、コード内でより多くの操作を行う必要があるためです。プラグインはそれを単一の関数呼び出しに簡素化し、JSON オブジェクトを提供します。

プラグインを使用すると、コードが次のように変更されます。

var data = {
    rid: 1234567890, // this is a "long" number
    gids: [1,2,3,4], // or "1,2,3,4".split(",")
    nickname: 'abc'
};

function UpdateMultipulGroup() {
    jQuery.ajax({
        url: "/Json/Contact_Update_Groups_NickName",
        type: "POST",
        data: $.toDictionary(data),
        success: ...
        ...
     });
}
于 2012-10-19T12:10:19.887 に答える
0

データをシリアル化するか、次のような値を送信できます$('#myField').val()

        var myField = $('#myField').serialize();

        if (myField)
        {
            $.ajax({
                url: '/MyController/AjaxUpdate',
                type: 'post',
                data: { myField: myField },
                dataType: 'json',
                success: function (result) {
                    // do something
                },
                error: function (result) {
                    //alert('An error occurred when updating the database.  Please contact technical support.  ');
                }
            });
        }

    });
于 2012-10-19T12:04:31.667 に答える