Jquery 从JS向MVC提交对象列表
我需要提交一份用户列表。 我有一个MVC控制器Jquery 从JS向MVC提交对象列表,jquery,arrays,ajax,asp.net-mvc,Jquery,Arrays,Ajax,Asp.net Mvc,我需要提交一份用户列表。 我有一个MVC控制器 [HttpPost] public JsonResult Handler(List<User> users) { ... } 在JavaScript中,我通过jquery发送数组 var users = {}; for (var i = 0; i < 3; i++) { users [i] = { name: "User " + i, ema
[HttpPost]
public JsonResult Handler(List<User> users) {
...
}
在JavaScript中,我通过jquery发送数组
var users = {};
for (var i = 0; i < 3; i++) {
users [i] = {
name: "User " + i,
email: "user" + i + "@test.net"
}
}
$.ajax({
type: "POST",
data: {
users: users
},
url: "http://test.net/order/handler",
success: callback
});
var-users={};
对于(变量i=0;i<3;i++){
用户[i]={
名称:“用户”+i,
电子邮件:“用户”+i+“@test.net”
}
}
$.ajax({
类型:“POST”,
数据:{
用户:用户
},
url:“http://test.net/order/handler",
成功:回调
});
我得到了包含3项的列表,但参数name和email为空
我哪里错了?您是否尝试将
[FromBody]
添加到参数中?例如:
[HttpPost]
public JsonResult Handler([FromBody] List<User> users) {
...
}
另一件事:你可能正在做一件有几方面含义的事情。您可以考虑使用以查看您的请求发生了什么,并发布更新,以便我们可以进一步帮助您。
不是因为您应该创建<强>数组< /强>,然后将<强>对象< /强>添加到:
var users = [];
for (var i = 0; i < 3; i++) {
var user = {
name: "User " + i,
email: "user" + i + "@test.net"
}
users[i] = user;
}
$.ajax({
type: "POST",
data: {
users: users
},
url: "http://test.net/order/handler",
success: callback
});
var用户=[];
对于(变量i=0;i<3;i++){
变量用户={
名称:“用户”+i,
电子邮件:“用户”+i+“@test.net”
}
用户[i]=用户;
}
$.ajax({
类型:“POST”,
数据:{
用户:用户
},
url:“http://test.net/order/handler",
成功:回调
});
首先,您需要设置有效的json数据:
var users = Array(), i;
for (i = 0; i < 3; i++) {
users[i] =
{
name: "User " + i,
email: "user" + i + "@test.net"
};
}
您如何尝试访问生成的
users
变量中的数据?您的类名是“User”,但列表中的类型是list(即带有s)。使用json.stringify(users)…@Exception:Eh,不。在使用jQuery的ajax时,您不需要(或者更确切地说,不应该)这样做。to Routeburn:我只是输入错误。已修复。否,它会给出相同的结果:-/他在做一个数组,在他的例子中,他减少了2行,做的完全相同。
var users = [];
for (var i = 0; i < 3; i++) {
var user = {
name: "User " + i,
email: "user" + i + "@test.net"
}
users[i] = user;
}
$.ajax({
type: "POST",
data: {
users: users
},
url: "http://test.net/order/handler",
success: callback
});
var users = Array(), i;
for (i = 0; i < 3; i++) {
users[i] =
{
name: "User " + i,
email: "user" + i + "@test.net"
};
}
$(document).ready(function() {
$.ajax({
type: "POST",
dataType: 'json',
data: {
users: users
},
url: "http://test.net/order/handler",
success: callback
});
});