.net - mvc - tag helper asp net core 2
¿Cómo se apaga o se reemplaza el mensaje de error predeterminado de ModelState en Asp.net MVC? (4)
Eliminaría ese cuadro de texto particular de la lista blanca que pasa al modelo TryUpdateModel / Update y lo validaría "a mano", en lugar de que el marco lo validara. Alternativamente, podría tratar de iterar a través de la colección Error de ModelState, encontrar la que desea eliminar y eliminarla; digamos, utilizando RemoveItem una vez que descubra cuál desea eliminar.
EDITAR : Si está utilizando el ModelBinder predeterminado, puede implementar el suyo propio. Asumí que, dado que generaba sus propios errores de modelo, estaba usando TryUpdateModel / UpdateModel.
Tengo una acción de controlador que tiene un DateTime que se puede nulos como uno de los parámetros que provienen de un cuadro de texto en mi formulario. Noté que si el usuario escribiera "blah" en ese cuadro de texto, obtendré un valor nulo para el parámetro DateTime y se agregará automáticamente un error de modelo. En este caso, el error ModelState que se agrega es "El valor ''blah'' no es válido".
Mi problema es que mi sitio admite varios idiomas, por lo que necesito localizar este error. Normalmente solo valido y agrego los errores de ModelState, pero en este caso parece que no puedo deshacerme de él. Si agrego otro error de ModelState para el mismo cuadro de texto, no aparece.
Podría llamar a ModelState.Clear (); al comienzo de la acción. Pero no estoy seguro de que me guste tener que hacer eso en cada acción.
Puede hacer que el parámetro DateTime sea nulable. Luego, si no se proporciona nada, el error no se agregará a ModelState.
public ActionResult Method(Datetime? date)
{}
más bien que
public ActionResult Method(Datetime date)
{}
Tengo que estar totalmente en desacuerdo con todas las respuestas que has recibido hasta ahora. Ninguno de ellos contesta la pregunta que realizaste, que es cómo localizar los mensajes de error de MVC. Podría dedicar mucho esfuerzo a resolver esta única instancia del problema y seguir teniendo el mismo problema con los otros 50 casos de mensajes de error de MVC si no localiza su aplicación. Se definen en MvcResources.resx, que se encuentra en la carpeta Resources del código fuente de MVC (o simplemente navega por el ensamblado con Reflector). En particular, está buscando el recurso Common_ValueNotValidForProperty
. Localizaría estos mensajes proporcionando un ensamblaje satelital localizado, de la misma manera que localiza cualquier aplicación .NET. Los detalles de la internacionalización / localización en aplicaciones .NET están fuera del alcance de esta respuesta, pero hay muchos libros sobre el tema. Hacer esto en MVC no es diferente de hacerlo en cualquier otra aplicación, excepto que, en la mayoría de los casos, las ubicaciones del marco ya están disponibles. MVC aún está en beta, por lo que, hasta donde yo sé, solo en inglés, por el momento. Presumiblemente, eso cambiará después del lanzamiento.