Estoy usando dataannotations en una aplicación MVC2 y estoy un poco desalentado cuando trato de usar recursos de archivos RESX para mensajes de error.DataAnnotations and Resources no funcionan bien
He intentado lo siguiente, pero seguir recibiendo la excepción "Un argumento atributo debe ser una expresión constante, typeof expresión o expresión gama creación de un tipo de parámetro de atributo"
[Required(ErrorMessage = Resources.ErrorMessages.Required)]
[Required(ErrorMessageResourceName = Resources.ErrorMessages.Required,
ErrorMessageResourceType = typeof(Resources.ErrorMessages)]
me siguen dando ese mensaje de error a menos que reemplace ErrorMessageResourceName
con "Obligatorio" en lugar de Resources.ErrorMessages.Required
.
¿Alguien puede decirme si estoy haciendo esto bien?
¿Puedo utilizar la propiedad ErrorMessage en su lugar? Prefiero escribir fuertemente .... – devlife
@devlife: No. No, si quieres localización. Para eso son exactamente las propiedades del recurso. De hecho, así es con la localización * any *, en algún punto de la cadena tendrá que buscar una cadena de recursos basada en el nombre, así es como funcionan los recursos externalizados. Y esto sigue siendo "fuertemente tipado" en función de la clase de recursos, simplemente no tiene seguridad en tiempo de compilación en el nombre del recurso en sí. Si quieres eso, simplemente crea una clase como 'ResourceNames' con líneas como' public const string Required = "Required '', luego puedes especificarlas como los nombres de los recursos. – Aaronaught