【问题标题】:How can I validate my model when I have an array property?当我有一个数组属性时如何验证我的模型?
【发布时间】: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 = "" });
 }

debuggin image here here

属性 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


【解决方案1】:

在验证之前从模型中删除属性:ModelState.Remove("Skills");

【讨论】:

    【解决方案2】:

    已解决

    问题出在日期选择器 CSS 中,日期格式有问题。和之前的没关系

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多