• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

976
Vistas
Validación del modelo MVC .Net Core: el valor '' no es válido. Error

Estoy tratando de usar la validación del modelo en MVC .Net Core y no puedo reemplazar este mensaje de error predeterminado "El valor '' no es válido".

En teoría, podemos reemplazar nuestro propio mensaje de error personalizado usando la anotación ErrorMessage en el modelo. Pero no pude encontrar una manera de hacer que esto funcione.

Mi modelo

 [Required(ErrorMessage = "Date Required")] [DataType(DataType.Date, ErrorMessage = "Invalid Date Format")] [Display(Name = "Appointment Date")] [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] public DateTime AppointmentDate { get; set; }

Puse un mensaje de ErrorMessage diferente para la etiqueta Required y Tipo de DataType como se muestra arriba.

Mi vista html

 <div class="col-md-2"> <input class="form-control" asp-for="AppointmentDate"> <span asp-validation-for="AppointmentDate" class="text-danger"></span> </div>

ingrese la descripción de la imagen aquí

¿Podría por favor ayudarme a reemplazar ese mensaje de error? Gracias.

almost 3 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Para que su atributo Required funcione, debe hacer que el campo sea anulable:

 public DateTime? AppointmentDate { get; set; }

Editar : también tenga en cuenta que el atributo DataType en realidad no realiza la validación en el campo. Fecha de validación de MVC al aplicar el enlace de los datos post al model

almost 3 years ago · Santiago Trujillo Denunciar

0

Después de que cambió el sistema de validación de .NET Core 3. Los parámetros que no aceptan valores NULL se tratan como si tuvieran un atributo [Obligatorio]. Obtiene la validación del lado del cliente incluso si no aplica el atributo [Requerido]. La validación JQuery del lado del cliente acepta campos de cadenas vacías, pero una vez enviado al servidor, el mismo campo obtendrá un resultado no válido. The value '' is invalid es el mensaje de error predeterminado para la validación del lado del servidor. De acuerdo con los documentos de asp.net, al usar un atributo [Requerido] puede anular este mensaje, pero no se aplica a los campos vacíos. Desafortunadamente, esta función genera valores de cadena vacíos ("") para campos de entrada ocultos que hacen referencia a propiedades int no anulables (es decir @Html.Hiddenfor(m=>m.id) generaría "" para el elemento html). las opciones provistas en asp.net docs la más segura es hacer que la propiedad sea anulable. otra buena opción es cambiar el mensaje predeterminado de .NET a otra cosa

 services.AddRazorPages() .AddMvcOptions(options => { options.ModelBindingMessageProvider.SetValueMustNotBeNullAccessor( _ => "The field is required."); });

Puedes leer más sobre esto aquí .

almost 3 years ago · Santiago Trujillo Denunciar

0

Tiene el mismo problema pero no puede detectar el problema. Revisé el objeto en modo de depuración para ver si hay alguna forma de ver qué propiedad falla en el estado del modelo.

Vista del modo de depuración del objeto modelstate

Luego veo el modelo que falla. Ese es un valor booleano que se asigna a una casilla de verificación

¡La parte extraña es "este no es un campo obligatorio"!

Agregué un signo de interrogación y usé el método getvalueordefault cuando lo usé

 public bool? IsCorporateAccount { get; set; }
almost 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda