Miałem ten sam problem i zrobiłem obejście tego problemu. Wiem, że to nie jest doskonałe.
Dla każdego atrybutu dataannotation utworzyć nową klasę
public class RequiredAttribute : System.ComponentModel.DataAnnotations.RequiredAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
validationContext.DisplayName = ModelMetadataProviders
.Current
.GetMetadataForProperty(null, validationContext.ObjectType, validationContext.DisplayName)
.DisplayName;
return base.IsValid(value, validationContext);
}
}
public class StringLengthAttribute : System.ComponentModel.DataAnnotations.StringLengthAttribute
{
public StringLengthAttribute(int maximumLength)
: base(maximumLength)
{ }
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
validationContext.DisplayName = ModelMetadataProviders
.Current
.GetMetadataForProperty(null, validationContext.ObjectType, validationContext.DisplayName)
.DisplayName;
return base.IsValid(value, validationContext);
}
}
itp ....
Wygląda na to, że nie zgadzamy się z MVC - tutaj możesz zgłosić błąd: http://aspnetwebstack.codeplex.com/workitem/list/basic –
Dzięki Youssef, raport o błędzie można znaleźć pod adresem http://aspnetwebstack.codeplex.com/workitem/744 –