2010-02-27 9 views
24

Estoy construyendo una aplicación web MVC con C#. Como el sitio será multilingüe, he implementado mi propio ResourceManager. Esta clase es responsable de obtener las cadenas de recursos requeridas de una base de datos/caché en función de la cultura del hilo de corriente y funciona bien hasta el momento.Cómo utilizar DataAnnotations ErrorMessageResourceName con Resource Solution personalizado

Mi problema es que me gustaría usar la solución personalizada de ResourceManager para obtener los mensajes de error de validación cuando, por ejemplo, usando el Obligatorio Atributo en una propiedad. Se puede hacer esto?

Respuesta

49

El RequiredAttribute permite utilizar un custom resource manager:

[Required(
    ErrorMessageResourceType = typeof(CustomResourceManager), 
    ErrorMessageResourceName = "ResourceKey")] 
public string Username { get; set; } 

ACTUALIZACIÓN:

Otra posibilidad es escribir su atributo personalizado:

public class CustomRequiredAttribute : RequiredAttribute 
{ 
    public override string FormatErrorMessage(string name) 
    { 
     return YourCustomResourceManager.GetResource(name); 
    } 
} 
+1

Mi ResourceManager es realmente una solución personalizada y no está conectado a MVC de ninguna manera ni implementa ninguna interfaz excepto t el que yo creé ¿Qué cambios son necesarios para que mi ResourceHandler pueda usarse de esta manera? – Mats

+0

Por favor, mira mi actualización. –

+0

¿Se requiere algo más para hacer que los atributos personalizados funcionen? Lo intenté y parece que no funciona. ¿Necesito crear mi propio método de extensión EditorFor para hacer uso del nuevo tipo de atributo? –

Cuestiones relacionadas