estoy usando los atributos DataAnnotations junto con ASP.Net MVC 2 para proporcionar la validación de modelos para mis ViewModels:¿Proporciona mensajes de error localizados para la validación de modelos no atribuidos en ASP.Net MVC 2?
public class ExamplePersonViewModel {
[Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources.Validation))]
[StringLength(128, ErrorMessageResourceName = "StringLength", ErrorMessageResourceType = typeof(Resources.Validation))]
[DataType(DataType.Text)]
public string Name { get; set; }
[Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources.Validation))]
[DataType(DataType.Text)]
public int Age { get; set; }
}
Esto parece funcionar como se esperaba (aunque es muy detallado). El problema que tengo es que hay validación de modelos detrás de escena que no están vinculados a ningún atributo específico. Un ejemplo de esto en el modelo anterior es que la propiedad Age
debe ser int
. Si intenta ingresar un valor no entero en el formulario, se producirá un error con el siguiente mensaje (no localizado):
El campo Edad debe ser un número.
¿Cómo se pueden localizar estos mensajes de validación sin atributos?
¿Hay una lista completa de estos mensajes disponibles para que pueda verificar que estén todos localizados?
información adicional I encontró así: http://stackoverflow.com/questions/1538873/how-to-replace-the-default-modelstate-error-message-in-asp-net-mvc-2/ –
Se Es importante tener en cuenta que al hacer esto, solo tendrá un mensaje de error localizado al validar en el lado del servidor. Para tener su mensaje localizado en el lado del cliente también tendrá que copiar y pegar 'ClientDataTypeModelValidatorProvider' desde MVC source y reescribir su método' MakeErrorString'. Más información [aquí] (http://jwwishart.blogspot.com/2011/03/custom-server-and-client-side-required.html), desplácese a la enda. Me tomó muchísimo tiempo descubrir que tanto el lado del cliente como el lado del servidor usan medios diferentes para transmitir ese mensaje. Espero que esto ayude a alguien a ahorrar tiempo. –
Usted dice que el segundo mensaje nunca se mostrará si tiene DataAnnotationsModelValidatorProvider en la lista de proveedores del validador. ¿Cómo puedo superar este problema? – Andrew