Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataAnnotations和ModelState.IsValid无效无效_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# DataAnnotations和ModelState.IsValid无效无效

C# DataAnnotations和ModelState.IsValid无效无效,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我有两个模型中的注释,这两个模型是相关的,ModelState.IsValid在有注释时返回false,删除注释如果没有问题,有人知道为什么会发生这种情况吗 模式1: namespace SifActivoFijo.Models { using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; public partial clas

我有两个模型中的注释,这两个模型是相关的,ModelState.IsValid在有注释时返回false,删除注释如果没有问题,有人知道为什么会发生这种情况吗

模式1:

    namespace SifActivoFijo.Models
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;

    public partial class AF_UbicacionActivoFijo
    {
        public long IdUbicacion { get; set; }
        [Required(ErrorMessage = "1*")]
        [Display(Name = "Codigo Centro de Costo")]
        public string GN_CentroDeCosto_CodigoCentroDeCosto { get; set; }
        [Required(ErrorMessage = "2*")]
        [Display(Name = "Tercero")]
        public string GN_Persona_CodigoPersona { get; set; }
        //[Required(ErrorMessage = "3*")]
        [Display(Name = "Codigo Activo")]
        public string AF_ActivoFijo_CodigoActivoFijo { get; set; }
        [Required(ErrorMessage = "4*")]
        [Display(Name = "Contacto")]
        public string Contacto { get; set; }
        [Required(ErrorMessage = "5*")]
        [Display(Name = "Direccion")]
        [RegularExpression(@"[A-Za-z_0-9\s .#&ñ'-]*\.?[A-Za-z_0-9\s .#&Ñ'-]+", ErrorMessage = "**")]
        public string Direccion { get; set; }
        [Required(ErrorMessage = "6*")]
        [Display(Name = "Telefono")]
        [RegularExpression(@"[A-Za-z_0-9\s .#&ñ'-]*\.?[A-Za-z_0-9\s .#&Ñ'-]+", ErrorMessage = "**")]
        public string Telefono { get; set; }
        [Required(ErrorMessage = "7*")]
        [Display(Name = "Celular")]
        [RegularExpression(@"[0-9 ]*\.?[0-9 ]+", ErrorMessage = "**")]
        public string Celular { get; set; }
        [Required(ErrorMessage = "8*")]
        [Display(Name = "Email")]
        [RegularExpression(@"[A-Za-z_0-9\s .@#&ñ'-]*\.?[A-Za-z_0-9\s .@#&Ñ'-]+", ErrorMessage = "**")]
        public string Email { get; set; }
        [Required(ErrorMessage = "9*")]
        [Display(Name = "Responsable")]
        [RegularExpression(@"[A-Za-z_0-9\s .@#&ñ'-]*\.?[A-Za-z_0-9\s .@#&Ñ'-]+", ErrorMessage = "**")]
        public string Responsable { get; set; }
        [Required(ErrorMessage = "10*")]
        [Display(Name = "Documento")]
        [RegularExpression(@"[A-Za-z_0-9\s .@#&ñ'-]*\.?[A-Za-z_0-9\s .@#&Ñ'-]+", ErrorMessage = "**")]
        public string Responsable_documento { get; set; }
        [Required(ErrorMessage = "11*")]
        [Display(Name = "Telefono")]
        [RegularExpression(@"[A-Za-z_0-9\s .@#&ñ'-]*\.?[A-Za-z_0-9\s .@#&Ñ'-]+", ErrorMessage = "**")]
        public string Responsable_Telefono { get; set; }
        [Required(ErrorMessage = "12*")]
        [Display(Name = "Sucursal")]
        [RegularExpression(@"[A-Za-z_0-9\s .@#&ñ'-]*\.?[A-Za-z_0-9\s .@#&Ñ'-]+", ErrorMessage = "**")]
        public string Sucursal { get; set; }
        [Required(ErrorMessage = "13*")]
        [Display(Name = "N° Contrato")]
        [RegularExpression(@"[A-Za-z_0-9\s .@#&ñ'-]*\.?[A-Za-z_0-9\s .@#&Ñ'-]+", ErrorMessage = "**")]
        public string NoContrato { get; set; }
        [Required(ErrorMessage = "14*")]
        [Display(Name = "Ciudad")]
        public string GN_Nivel3_CodigoNivel3 { get; set; }
        [Required(ErrorMessage = "15*")]
        [Display(Name = "Fecha Inicial")]
        public System.DateTime FechaInicial { get; set; }

        public virtual GN_Nivel3 GN_Nivel3 { get; set; }
        public virtual AF_ActivoFijo AF_ActivoFijo { get; set; }
        public virtual GN_Persona GN_Persona { get; set; }
        public virtual GN_CentroDeCosto GN_CentroDeCosto { get; set; }
    }
}
模式2:

    namespace SifActivoFijo.Models
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;

    public partial class AF_ActivoFijo
    {
        public AF_ActivoFijo()
        {
            this.AF_ConfiguracionActivoFijo = new HashSet<AF_ConfiguracionActivoFijo>();
            this.AF_DepreciacionActivoFijo = new HashSet<AF_DepreciacionActivoFijo>();
            this.AF_UbicacionActivoFijo = new HashSet<AF_UbicacionActivoFijo>();
            this.AF_RevaluacionNIIF = new HashSet<AF_RevaluacionNIIF>();
        }

        [Required(ErrorMessage = "*1")]
        [Display(Name = "Activo Fijo Principal")]
        [RegularExpression(@"[A-Za-z_0-9 .#_-]*\.?[A-Za-z_0-9 .#_-]+", ErrorMessage = "**")]
        public string CodigoActivoFijo { get; set; }
        [Required(ErrorMessage = "*2")]
        [Display(Name = "Grupo Contable")]
        public string AF_GrupoContableAF_CodigoGrupoContableAF { get; set; }
        [Required(ErrorMessage = "*3")]
        [Display(Name = "Estado")]
        public string ST_Estado_CodigoEstado { get; set; }
        [Required(ErrorMessage = "*4")]
        [Display(Name = "Grupo de Activo")]
        public string AF_GrupoActivoFijo_CodigoGrupoAF { get; set; }
        [Required(ErrorMessage = "*5")]
        [Display(Name = "Producto")]
        public string GN_Portafolio_CodigoPortafolio { get; set; }
        [Display(Name = "Serial")]
        [RegularExpression(@"[A-Za-z_0-9 .ñÑ#_-]*\.?[A-Za-z_0-9 .Ññ#_-]+", ErrorMessage = "**")]
        public string Serial { get; set; }
        [Display(Name = "Configurable")]
        public bool SenConfigurable { get; set; }
        [Required(ErrorMessage = "*6")]
        [Display(Name = "Fecha de Activacion")]
        public Nullable<System.DateTime> FechaActivacion { get; set; }
        [Required(ErrorMessage = "*7")]
        [Display(Name = "Costo")]
        [RegularExpression(@"[0-9 ]*\.?[0-9 ]+", ErrorMessage = "**")]
        [DataType(DataType.Currency)]
        public Nullable<double> Costo { get; set; }
        [Required(ErrorMessage = "*8")]
        [Display(Name = "IVA")]
        [RegularExpression(@"[0-9 ]*\.?[0-9 ]+", ErrorMessage = "**")]
        public Nullable<double> ValorIva { get; set; }
        [Required(ErrorMessage = "*9")]
        [Display(Name = "Margen")]
        [RegularExpression(@"[0-9 ]*\.?[0-9 ]+", ErrorMessage = "**")]
        public Nullable<double> PorcentajeMargen { get; set; }
        [Display(Name = "Costo Activo")]
        [RegularExpression(@"[0-9 ]*\.?[0-9 ]+", ErrorMessage = "**")]
        public Nullable<double> CostoActivo { get; set; }
         [Display(Name = "Tiempo Contable")]
        public Nullable<int> TiempoDepreciacionContable { get; set; }
        [Display(Name = "Tiempo Fiscal")]
        public Nullable<int> TiempoDepreciacionFiscal { get; set; }
        [Display(Name = "Depreciable Individiual")]
        public bool SenDepreciacionIndividual { get; set; }
        [Display(Name = "Saldo Contable")]
        public Nullable<double> SaldoADepreciar { get; set; }
        [Required(ErrorMessage = "*10")]
        [RegularExpression(@"[A-Za-z_0-9\s .#&ñ'-]*\.?[A-Za-z_0-9\s .#&Ñ'-]+", ErrorMessage = "**")]
        public string DescripcionActivoFijo { get; set; }
        [Display(Name = "Saldo Fiscal")]
        public Nullable<double> SaldoAdepreciarFiscal { get; set; }
        [Display(Name = "Depreciable")]
        public bool SenDepreciable { get; set; }
        [Required(ErrorMessage = "*11")]
        [Display(Name = "Propietario")]
        public string GN_Persona_CodigoPersona { get; set; }
        public Nullable<double> SaldoNiif { get; set; }
        public Nullable<int> VidaUtilNiif { get; set; }
        public Nullable<System.DateTime> FechaReevaluacion { get; set; }

        public virtual AF_GrupoActivoFijo AF_GrupoActivoFijo { get; set; }
        public virtual AF_GrupoContableAF AF_GrupoContableAF { get; set; }
        public virtual GN_Portafolio GN_Portafolio { get; set; }
        public virtual ST_Estado ST_Estado { get; set; }
        public virtual ICollection<AF_ConfiguracionActivoFijo> AF_ConfiguracionActivoFijo { get; set; }
        public virtual ICollection<AF_DepreciacionActivoFijo> AF_DepreciacionActivoFijo { get; set; }
        public virtual ICollection<AF_UbicacionActivoFijo> AF_UbicacionActivoFijo { get; set; }
        public virtual ICollection<AF_RevaluacionNIIF> AF_RevaluacionNIIF { get; set; }
    }
}

数据批注在模型上起验证作用,当我们执行model.IsValid时,所有批注都会根据我们分配给模型属性的值进行验证,似乎您的任何正则表达式都没有验证您分配的值。

可能与正则表达式有关。我不是说它是,但你有一些讨厌的,所以我只是说,你应该检查他们一个接一个。尝试在它们中手动解析您的内容。
[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit(AF_UbicacionActivoFijo ubicacion)
    {
        AF_UbicacionActivoFijo au = new AF_UbicacionActivoFijo { 

            IdUbicacion=ubicacion.IdUbicacion,
            GN_CentroDeCosto_CodigoCentroDeCosto=ubicacion.GN_CentroDeCosto_CodigoCentroDeCosto,
            GN_Persona_CodigoPersona=ubicacion.GN_Persona_CodigoPersona,
            AF_ActivoFijo_CodigoActivoFijo=ubicacion.AF_ActivoFijo_CodigoActivoFijo,
            Contacto=ubicacion.Contacto,
            Direccion=ubicacion.Direccion,
            Telefono=ubicacion.Telefono,
            Celular=ubicacion.Celular,
            Email=ubicacion.Email,
            Responsable=ubicacion.Responsable,
            Responsable_documento=ubicacion.Responsable_documento,
            Responsable_Telefono=ubicacion.Responsable_Telefono,
            Sucursal=ubicacion.Sucursal,
            NoContrato=ubicacion.NoContrato,
            GN_Nivel3_CodigoNivel3=ubicacion.GN_Nivel3_CodigoNivel3,
            FechaInicial=ubicacion.FechaInicial
        };
        if (ModelState.IsValid)
        {
            db.Entry(au).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("confirm", "Home");
        }

        else
        {
            foreach (var modelStateValue in ViewData.ModelState.Values)
            {
                foreach (var error in modelStateValue.Errors)
                {
                    //Use breakpoints and Let's check what it is in these properties
                    var errorMessage = error.ErrorMessage;
                    var exception = error.Exception;
                }
            }
        }

        ViewBag.GN_Nivel3_CodigoNivel3 = new SelectList(db.GN_Nivel3, "CodigoNivel3", "NombreNivel3", ubicacion.GN_Nivel3_CodigoNivel3);
        ViewBag.GN_CentroDeCosto_CodigoCentroDeCosto = new SelectList(db.GN_CentroDeCosto, "CodigoCentroDeCosto", "NombreCentroDeCosto", ubicacion.GN_CentroDeCosto_CodigoCentroDeCosto);
        return View(ubicacion);
    }