以下是我正在使用的代码。
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
作为此功能的列表传递?
答案 0 :(得分: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. ');
}
});
}
});
答案 1 :(得分:0)
IList<T>
这blog post of mine可以帮助实现,因为它基本上是在讨论这个问题。如何将客户端数据绑定到控制器操作中的IList<T>
。
博客文章解释说,实际上必须将值编入索引,如
gids[0] = 1;
gids[1] = 2;
但是我还编写了一个very simple jQuery plugin来完成从复杂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: ...
...
});
}