想要 ASP.NET Web API 執(zhí)行模型驗證,同時可以和 ASP.NET MVC 共享一些驗證邏輯。
解決方案
ASP.NET Web API 與 ASP.NET MVC 支持一樣的驗證機制,都是通過System.ComponentModel.DataAnnoataions 的屬性驗證。使用框架提供的相關(guān)驗證屬性,已足夠來用來驗證模型。
想要更細粒度的驗證,我們可以選擇在我們的模型中實現(xiàn) IValudateObject(來自于System.ComponentModel.DataAnnotations)。如果所有的屬性都驗證通過,ASP.NET Web API 將會調(diào)用接口的Validate 方法,在這里我們可以進行更進一步的進行實體驗證。這是和 MVC 里面的行為一樣,并且,我們甚至可以在 Web API 和 MVC 中使用同一個 DTO。
還有另一種方法,就是可以使用一個叫做 FluentValidation(NuGet 中可以下載FluentValidation)的第三方程序庫,他可以構(gòu)建更強大的驗證場景。在這樣的情況下,我們?nèi)匀恍柙谖覀兊哪P椭袑崿F(xiàn) IValidateObject 接口,同時需要依賴于FluentValidation 驗證器,而不是內(nèi)嵌的驗證邏輯。
小提示 ASP.NET Web API