我正在尝试使用 ajax 将集合从 View 发送到 Controller 。首先,我在 JavaScript 数组中完成数据,然后尝试将其传递到服务器:
var funciones = $("#funcionesUsuario").data("kendoGrid").dataSource.data();
var func = [];
for (var i = 0; i < funciones.length; i++) {
func.push({
"Estado": 1,
"FechaAlta": null,
"UsuarioAlta": null,
"FechaModificacion": null,
"UsuarioModificacion": null,
"BitConcilia": funciones[i].BitConcilia,
"BitLectura": funciones[i].BitLectura,
"BitSupervisa": funciones[i].BitSupervisa,
"ConciliacionId": funciones[i].ConciliacionId,
"UsuarioId": funciones[i].UsuarioId
})
}
$.post(url, { funcionesUsuario: func })
.done(function (data) {
alert("good job");
});
然后,由于我要发送 2 个对象的数据,因此我的参数是所述对象的 IEnumerable:
public void ActualizarFuncionesUsuario(IEnumerable<FuncionUsuario> funcionesUsuario)
{
//do something
}
我的问题是 Controller 接收到 2 个对象,正如我在 funcionesUsuario.count 中看到的那样,但它们都是空的。
我尝试成功发送 int、bool 和其他类型的变量,所以我怀疑我在数据绑定(bind)方面做错了什么。
下面我附上了我发送的内容和我在另一方收到的内容的图片。
这是 FuncionUsuario
模型:`
public class FuncionUsuario : AuditableEntity {
public int ConciliacionId { get; set; }
public int UsuarioId { get; set; }
public bool BitLectura { get; set; }
public bool BitConcilia { get; set; }
public bool BitSupervisa { get; set; }
public virtual Conciliacion Conciliacion { get; set; }
[Display(ResourceType = typeof(Global), Name = "Descripcion")]
[NotMapped]
public string Descripcion { get; set; }
}
最佳答案
首先将数组构造为 java 脚本对象
var funciones = $("#funcionesUsuario").data("kendoGrid").dataSource.data();
var func = [];
for (var i = 0; i < funciones.length; i++) {
func.push({
Estado: 1,
FechaAlta: null,
UsuarioAlta: null,
FechaModificacion: null,
UsuarioModificacion: null,
BitConcilia: funciones[i].BitConcilia,
BitLectura: funciones[i].BitLectura,
BitSupervisa: funciones[i].BitSupervisa,
ConciliacionId: funciones[i].ConciliacionId,
UsuarioId: funciones[i].UsuarioId
})
}
接下来,正确地对它们进行字符串化
var payload = JSON.stringify(func);
然后将其作为 JSON 发布
$.ajax({
url: url,
type: "POST",
contentType: "application/json",
dataType: 'json'
data: payload,
});
关于javascript - Controller 从 Ajax 接收空数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37844304/