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)

我尝试使用数组,但我总是得到空值。

我怎样才能通过UpdateMultipulGroupContactId这个函数作为列表传递?

4

2 回答 2

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 回答
0

绑定到IList<T>

我的这篇博客文章可以提供实质性帮助,因为它基本上讨论了这个问题。如何将客户端数据绑定到IList<T>控制器操作中。

博客文章解释说,值实际上必须索引为

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

发送复杂的 JSON 对象

但我还编写了一个非常简单的 jQuery 插件,它完成了从复杂 JSON 对象到 MVC 模型绑定器可以轻松使用的对象的所有转换。它还能够使用各种数据类型(日期等)并正确转换它们以供 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 回答