【发布时间】:2016-08-22 16:53:31
【问题描述】:
我在 MVC 中有一个带有数组属性的类
public class MyClass
{
public int Contrato_Id { get; set; }
public string Contrato { get; set; }
public int Torre_Id { get; set; }
public string Torre { get; set; }
public SkillsATB[] Skills { get; set; }
}
当我通过 jquery ajax 进行 POST 时,我的 ModelState 验证总是错误的
if (ModelState.IsValid)
{
var _current = _Service.Insert(current);
return Json(new { result = "success", resultValue = "" });
}
属性 SkillsATB 没问题,它有元素,但我认为我缺少该数组的某些内容。
function ConvertToSkillsObject(id, name) {
var skill = {
Id: Math.round(id),
Nombre: name,
Descripcion: "",
Activo: "1",
Asignada: 1
}
return skill;
}
function GetSkillsAsignados() {
var asignados = [];
$("#sortable2").children().each(function () {
var item = ConvertToSkillsObject($(this).attr("data-id"), $(this).html())
asignados.push(item);
});
return asignados;
}
var MyClass= {
Correo: $('#correo').val(),
CorreoLider: $('#correoLider').val(),
CorreoLiderBSD: $('#correoLiderBSD').val(),
FechaNacio: $('#fechaNacio').val(),
Contrato_Id: $('#contrato_Id').val(),
Torre_Id: $('#torre_Id').val(),
Skills: GetSkillsAsignados()
};
$.ajax({
url: "../../MyController/Save",
type: "POST",
data: JSON.stringify(MyClass),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (e) {
... //more javascript
【问题讨论】:
-
您只想验证数组中是否至少有一个项目或每个项目的单个属性值?如果是后者,您要验证哪些属性?你的表单是什么样子的?
-
数组是空的还是满的,只有一项或可以为空的值都没有关系。 @Shyju
-
那你要验证什么?
-
能否请您发布代码以供查看?
-
我想知道的是为什么没有 SkillsATB 属性 ModelState 是有效的?为什么它是假的?我怎样才能绕过它??
标签: javascript c# asp.net-mvc asp.net-mvc-4