Reputation: 187
I have annotations in two models, the two are related, ModelState.IsValid returns false when there are annotations, delete annotations if it works without problem, anyone know why this happens?
Model 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; }
}
}
Model 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);
}
Upvotes: 0
Views: 301
Reputation: 343
Data annotations work as validations on models and when we do model.IsValid then all annotations are validated against the values we assign to model properties , it seems that any of your regular expression is not validating your assigned value.
Upvotes: 1