2013-01-03 12 views
7

görmezden geliyor: "Etkinlik tepki alanı gerekiyor"Web Api ModelState doğrulama bu veriler ek açıklamalarla model Verilen DisplayAttribute

public class Example 
{ 
    [Required] 
    [Display(Name = "Activity response")] 
    public string ActivityResponse { get; set; } 
} 

manken devlet hata mesajı olması beklenir Bunun yerine "ActivityResponse alanı gereklidir."

+0

Bu konuda MVC ile tutarsızız gibi geliyor - burada bir hata bildirmekten çekinmeyin: http://aspnetwebstack.codeplex.com/workitem/list/basic –

+0

Teşekkürler Yusuf, hata raporu bulunabilir http://aspnetwebstack.codeplex.com/workitem/744 –

cevap

1

Aynı sorun vardı ve bunun için bir geçici çözüm yaptım. Mükemmel olmadığını biliyorum. Her DataAnnotation için

.... yeni bir sınıf

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); 
    } 
} 

vb oluşturmak

2

Yaşasın bağlıyor! The codeplex issue, bu hatanın Web API v5.1 Önizleme'de düzeltileceğini bildiriyor.

İlgili konular