2014-01-22 2 views
0

У меня есть аннотации в двух моделях, два связаны, ModelState.IsValid возвращает false, когда есть аннотации, удаляет аннотации, если они работают без проблем, кто-нибудь знает, почему это происходит?DataAnnotations и ModelState.IsValid no working

Модель 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 [email protected]#&ñ'-]*\.?[A-Za-z_0-9\s [email protected]#&Ñ'-]+", ErrorMessage = "**")] 
     public string Email { get; set; } 
     [Required(ErrorMessage = "9*")] 
     [Display(Name = "Responsable")] 
     [RegularExpression(@"[A-Za-z_0-9\s [email protected]#&ñ'-]*\.?[A-Za-z_0-9\s [email protected]#&Ñ'-]+", ErrorMessage = "**")] 
     public string Responsable { get; set; } 
     [Required(ErrorMessage = "10*")] 
     [Display(Name = "Documento")] 
     [RegularExpression(@"[A-Za-z_0-9\s [email protected]#&ñ'-]*\.?[A-Za-z_0-9\s [email protected]#&Ñ'-]+", ErrorMessage = "**")] 
     public string Responsable_documento { get; set; } 
     [Required(ErrorMessage = "11*")] 
     [Display(Name = "Telefono")] 
     [RegularExpression(@"[A-Za-z_0-9\s [email protected]#&ñ'-]*\.?[A-Za-z_0-9\s [email protected]#&Ñ'-]+", ErrorMessage = "**")] 
     public string Responsable_Telefono { get; set; } 
     [Required(ErrorMessage = "12*")] 
     [Display(Name = "Sucursal")] 
     [RegularExpression(@"[A-Za-z_0-9\s [email protected]#&ñ'-]*\.?[A-Za-z_0-9\s [email protected]#&Ñ'-]+", ErrorMessage = "**")] 
     public string Sucursal { get; set; } 
     [Required(ErrorMessage = "13*")] 
     [Display(Name = "N° Contrato")] 
     [RegularExpression(@"[A-Za-z_0-9\s [email protected]#&ñ'-]*\.?[A-Za-z_0-9\s [email protected]#&Ñ'-]+", 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; } 
    } 
} 

CONTROLLER

[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); 
    } 
+0

Возможно, с вашими регулярными выражениями. Я не говорю, что это так, но у вас есть некоторые неприятные, так что все, что я говорю, это то, что вы должны проверять их один за другим. Попробуйте разобрать свой контент вручную внутри них. –

ответ

1

аннотации данные работают как валидации на моделях и когда мы делаем model.IsValid тогда все аннотации подтвержденный против значений, которые мы присваиваем свойствам модели, кажется, что любой из ваших регулярных выражений on не подтверждает ваше назначенное значение.

Смежные вопросы