2017-03-17 10 views
0

C#ASP.NETでRESTfulなサービスが完了しました。私のモデルでは、DataAnnotationsのRequiredAttribute(System.ComponentModel.DataAnnotation)を使用しています。プロパティが不足している入力モデル(SwaggerまたはPostmanを介して)を送信すると、各プロパティに[必須]属性が1つしかありませんが、$ {{}}が必要です。 私はおそらくそれが私のモデルで継承されていると思います(3レベルの階層もあり、トリプルメッセージもないので、これは問題ではないと思います)か、何らかの形で登録を二重登録します。たとえば、これは片方の親である:RESTfulサービスでC#RequiredAttributeメッセージが表示されるdouble

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

この1子クラス:

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

私がチェックできるか問題になる可能性がどのようなものについての任意のアイデア?

答えて

1

回答がありませんでした... 私の同僚は、必要な属性を削除し、validateメソッドを使ってIValidatableインターフェイスをオブジェクトに追加すると、validateメソッドが2回呼び出されたことがわかりました。 Stacktraceは同じ時間でした。適切な検索ワードが最後に解決策を見つけました:StackOverflow-ASP.NET WEB API 2 - ModelBinding Firing twice per request

私はModelValidatorProviderを再バインドしなければなりませんでした。私はそれを私がエンティティに縛られた場所に適用しました。

関連する問題