簡體   English   中英

ASP.NET Web API是否支持IValidatableObject?

[英]Does ASP.NET web API support IValidatableObject?

我有一個實現IValidatableObject的視圖模型,並且還具有幾個驗證屬性。 當我嘗試在ApiController上調用操作時,僅執行屬性驗證。 ASP.NET Web API是否不支持IValidatableObject? 無法用單個屬性表示的復雜驗證有什么選擇?

編輯:沿某處,我一定捏造了一些東西。 驗證過程神秘地開始按預期進行。 看起來IValidatableObject在默認情況下絕對受支持。

使用Web API 2.1(Microsoft.AspNet.WebApi nuget 5.1.x)時,如果任何驗證屬性無效,我將無法調用IValidatableObject的Validate方法。 因此,在調用該類的Validate方法之前,必須先將所有已應用於您類屬性的驗證屬性傳遞為有效對象。

例如,如果您具有一個帶有RequiredAttribute的屬性,並且未在該字段中輸入值,則不會調用IValidatableObject的Validate方法的實現。 盡管從技術上講不是錯誤,但我希望每次驗證時都會調用Validate方法。

尚未在webapi上嘗試過IValidatableObject,但根據文檔的支持,DataAnnotations的驗證提供程序(DataAnnotationsModelValidatorProvider)還應提供IValidatableObject驗證。 請參閱此處: http : //msdn.microsoft.com/zh-cn/library/system.web.http.validation.providers(v=vs.108)

無論如何,您也可以使用對象級別的ValidationAttribute來裝飾類...這不像IValidatableObject那樣容易,但是應該可以。

到目前為止,已支持IValidatableObject。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM