2017-03-17 63 views
0

我正在使用C#ASP.NET完成REST式服務。在我的模型上,我使用DataAnnotations的RequiredAttribute(來自System.ComponentModel.DataAnnotation)。當我發送一個缺少屬性的輸入模型時(通過Swagger或Postman),我得到了雙「$ {property}是必需的」消息,儘管每個屬性只有一個[Required]屬性。 我想也許它來自我的模型中的繼承(我有時也有三級層次結構,沒有三重消息,所以我認爲這不是問題),或者以某種方式註冊驗證(但它們在哪裏註冊?)。例如,這是一個家長:C#必需RESTful服務上的屬性消息顯示爲雙倍

public class CertificatePayload : AchievementBase 
{ 
    public string ExternalLink { get; set; } 
} 

這一個子類:

public class AchievementBase 
{ 
    [Required] 
    public string GrantedTo { get; set; } 
    [Required] 
    public string GrantedBy { get; set; } 
} 

什麼我可以檢查或可能是什麼問題,任何想法?

回答

1

因爲沒有回答... 我的同事用一個技巧解決了這個問題:刪除所需的屬性並使用驗證方法將IValidatable接口添加到對象,表明驗證方法被調用了兩次。兩次Stacktrace都一樣。正確的搜索詞最終找到了解決方案: StackOverflow-ASP.NET WEB API 2 - ModelBinding Firing twice per request

我必須重新綁定ModelValidatorProvider。我將它應用到我綁定實體的地方。