2017-03-17 12 views
0

C# ASP.NET에서 RESTful 서비스를 수행하고 있습니다. 내 모델에서는 DataAnnotations의 RequiredAttribute (System.ComponentModel.DataAnnotation에서)를 사용하고 있습니다. Swagger 나 Postman을 통해 속성이 누락 된 입력 모델을 전송할 때 각 속성에 하나의 [필수] 속성 만 있지만 두 번 "{{}} 속성이 필요합니다"라는 메시지가 나타납니다. 어쩌면 그것이 내 모델의 상속에서 온 것일 수도 있습니다 (때로는 3 레벨 계층 구조와 3 중 메시지가 없기 때문에 문제가 아닌 것 같습니다) 또는 검증을 이중으로 등록하는 것으로부터 생각할 수 있습니다.RESTful 서비스에 대한 C# RequiredAttribute 메시지가 두 번 나타납니다.

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

답변이 없었으므로 동료가 문제를 해결했습니다. 필요한 속성을 삭제하고 validate 메소드로 IValidatable 인터페이스를 객체에 추가하면 validate 메소드가 두 번 호출 된 것으로 나타났습니다. Stacktrace도 두 번 같았습니다. 올바른 검색 단어가 결국 해결책을 찾았습니다. StackOverflow-ASP.NET WEB API 2 - ModelBinding Firing twice per request

ModelValidatorProvider를 리 바인드해야했습니다. 나는 그것을 나의 실체를 묶은 곳에 적용했다.