【发布时间】:2016-10-17 02:12:38
【问题描述】:
我正在尝试使用 ajax 将集合从视图发送到控制器。首先我在一个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
}
我的问题是控制器接收到 2 个对象,正如我在 funcionesUsuario.count 中看到的那样,但它们都是空的。
我尝试成功发送 int、bool 和其他类型的变量,所以我怀疑我在数据绑定方面做错了什么。
下面我附上了我正在发送的内容和我在另一边收到的内容的图片。
这是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; }
}
【问题讨论】:
-
您的
FuncionUsuario模型架构是什么样的? -
这不是一个确定的答案,但是有几个类似的问题可以解决数据字符串化/提供适当的
contentType的问题。我肯定会先尝试指定contentType,然后仅在必要时进行字符串化。 stackoverflow.com/questions/10101896/…, stackoverflow.com/questions/14691977/… -
@Nkosi 感谢您的编辑!我打算这样做,但你打败了我。
标签: javascript c# jquery ajax asp.net-mvc