C# 在两个不同的视图中使用相同的模型,在第二个视图中不获取验证消息

C# 在两个不同的视图中使用相同的模型,在第二个视图中不获取验证消息,c#,asp.net-mvc,C#,Asp.net Mvc,我正在创建两个MVC#razor引擎视图,并且我必须/必须为两个不同的视图使用相同的模型,问题在于: 在第一个视图中,我不需要获取模型所有属性的信息,只需要获取其中的一些属性,也不需要在第一个视图中显示模型的所有属性 在第二个视图中,我需要从第一个视图中未显示的属性中获取信息,以便用信息填充所有属性模型,然后将模型提交到数据库 问题是模型使用dataannotations来验证属性是否有值,并且在第一个视图中不是问题,但在第二个视图中,当第二个视图第一次加载时,它总是显示validationme

我正在创建两个MVC#razor引擎视图,并且我必须/必须为两个不同的视图使用相同的模型,问题在于:

在第一个视图中,我不需要获取模型所有属性的信息,只需要获取其中的一些属性,也不需要在第一个视图中显示模型的所有属性

在第二个视图中,我需要从第一个视图中未显示的属性中获取信息,以便用信息填充所有属性模型,然后将模型提交到数据库

问题是模型使用dataannotations来验证属性是否有值,并且在第一个视图中不是问题,但在第二个视图中,当第二个视图第一次加载时,它总是显示validationmessage

第一种形式

带有验证消息的第二个表单

这就是模型

 #region Datos Empresa
        private string Empresa;

        [Required(ErrorMessage = "Especificar empresa que asistirá al evento", AllowEmptyStrings = false)]
        [Display(Name = "Empresa")]
        public string empresa
        {
            get { return Empresa; }
            set { Empresa = value; }
        }
        #endregion

        #region Datos Evento de Formación
        private string AccionEvento;
        private string DptoEvento;
        private string MunicipioEvento;
        private string LugarEvento;
        private string DireccionEvento;
        private string FechaEvento;
        private double HorasEvento;


        [Required(ErrorMessage = "Favor especificar Acción Formativa")]
        [Display(Name = "Acción Formativa")]
        public string accionEvento
        {
            get { return AccionEvento; }
            set { AccionEvento = value; }
        }

        [Required(ErrorMessage = "Favor especificar departamento")]
        [Display(Name = "Departamento")]
        public string dptoEvento
        {
            get { return DptoEvento; }
            set { DptoEvento = value; }
        }

        [Required(ErrorMessage = "Favor especificar municipio")]
        [Display(Name = "Municipio")]
        public string municipioEvento
        {
            get { return MunicipioEvento; }
            set { MunicipioEvento = value; }
        }

        [Required(ErrorMessage = "Especificar lugar en que se impartira el evento")]
        [Display(Name = "Lugar")]
        public string lugarEvento
        {
            get { return LugarEvento; }
            set { LugarEvento = value; }
        }

        [Required(ErrorMessage = "Especificar dirección en que se impartira el evento")]
        [Display(Name = "Dirección")]
        public string direccionEvento
        {
            get { return DireccionEvento; }
            set { DireccionEvento = value; }
        }

        [Required(ErrorMessage = "Especificar fecha inicio evento")]
        [Display(Name = "Fecha tentaiva Inicio")]
        public string fechaEvento
        {
            get { return FechaEvento; }
            set { FechaEvento = value; }
        }

        [Required(ErrorMessage = "Especificar total horas evento")]
        [Display(Name = "Total Horas")]
        public double horasEvento
        {
            get { return HorasEvento; }
            set { HorasEvento = value; }
        }

        //[DisplayFormat(DataFormatString = "{0:#.####}")]

        public double PrecioEvento { get; set; }
        public string acme { get; set; }

        #endregion

        #region Datos Empleado
        private string NombreEmpleado;
        private string ApellidoEmpleado;
        private string SexoEmpleado;
        private string CargoEmpleado;
        private string NivelEmpleado;
        private string ISSSEmpleado;
        private string DUIEmpleado;
        private int grupo;

        [Required(ErrorMessage = "Especificar nombres de empleado")]
        [Display(Name = "Nombres")]
        public string nombreEmpleado
        {
            get { return NombreEmpleado; }
            set { NombreEmpleado = value; }
        }

        [Required(ErrorMessage = "Especificar apellidos de empleado")]
        [Display(Name = "Apellidos")]
        public string apellidoEmpleado
        {
            get { return ApellidoEmpleado; }
            set { ApellidoEmpleado = value; }
        }

        [Required(ErrorMessage = "Especificar genero")]
        [Display(Name = "Genero")]
        public string sexoEmpleado
        {
            get { return SexoEmpleado; }
            set { SexoEmpleado = value; }
        }

        [Required(ErrorMessage = "Especificar cargo de empleado")]
        [Display(Name = "Cargo")]
        public string cargoEmpleado
        {
            get { return CargoEmpleado; }
            set { CargoEmpleado = value; }
        }

        [Required(ErrorMessage = "Especificar nivel organizacional")]
        [Display(Name = "Nível Organizacional")]
        public string nivelEmpleado
        {
            get { return NivelEmpleado; }
            set { NivelEmpleado = value; }
        }

        [Required(ErrorMessage = "Especificar ISSS de empleado")]
        [Display(Name = "Numero ISSS")]
        [RegularExpression("([0-9]{9})", ErrorMessage = "formato incorrecto de numero de ISSS")]
        public string IsssEmpleado
        {
            get { return ISSSEmpleado; }
            set { ISSSEmpleado = value; }
        }

        [Required(ErrorMessage = "Especificar DUI de empleado")]
        [Display(Name = "Numero DUI")]
        [RegularExpression("([0-9]{8}-[0-9]{1})", ErrorMessage = "formato incorrecto de numero de DUI")]
        public string DuiEmpleado
        {
            get { return DUIEmpleado; }
            set { DUIEmpleado = value; }
        }

        [Required(ErrorMessage = "especificar Grupo")]
        [Display(Name = "Grupo")]
        [Range(1, 9999, ErrorMessage = "grupo no valido")]
        [RegularExpression(@"^(((\d{1})*))$", ErrorMessage = "Grupo no valido")]
        public int Grupo
        {
            get { return grupo; }
            set { grupo = value; }
        }

        [Required(ErrorMessage = "Especificar numero de ISSS a consultar")]
        [Display(Name = "Numero ISSS")]
        [RegularExpression("([0-9]{9})", ErrorMessage = "formato incorrecto de numero de ISSS")]
        public string ISSSBuscar { get; set; }

        public string DUIME {get; set;}
        public string telefono { get; set; }
        public string fax { get; set; }
        public string correo { get; set; }
        public string responsable { get; set; }
        public decimal aporte { get; set; } 
        public string proveedor { get; set; }
        public string NombreEmpresa { get; set; }
        public string accion { get; set; }
        public string respuesta { get; set; }

        #endregion
第一个视图向第二个视图提交模型,并填写相应的属性。我的问题是,为了不在第二个视图中显示验证消息,我需要做什么?
您能帮我编辑数据吗。不要使用数据模型。为您的视图创建两个视图模型。谢谢,有什么区别?您能举个例子吗?第一个视图有一个视图模型,其中只包含要显示/编辑的属性,第二个视图模型(可能从第一个视图继承)。提交第二个视图时,将映射到数据模型的实例并保存数据模型。也请参考哦,我也在考虑使用[HttpGet]和[HttpPost],第一个接收模型(正如您所建议的,只有我想要获取的属性的模型),然后显示视图,当第二个视图提交信息时,使用[HttpPost]执行操作属性将接收它…开始之前我的问题:不显示validationmessage会有帮助吗?