想要 ASP.NET Web API 執(zhí)行模型驗證,同時可以和 ASP.NET MVC 共享一些驗證邏輯。

解決方案

  ASP.NET Web API  ASP.NET MVC 支持一樣的驗證機制,都是通過System.ComponentModel.DataAnnoataions 的屬性驗證。使用框架提供的相關驗證屬性,已足夠來用來驗證模型。

想要更細粒度的驗證,我們可以選擇在我們的模型中實現(xiàn) IValudateObject(來自于System.ComponentModel.DataAnnotations)。如果所有的屬性都驗證通過,ASP.NET Web API 將會調(diào)用接口的Validate 方法,在這里我們可以進行更進一步的進行實體驗證。這是和 MVC 里面的行為一樣,并且,我們甚至可以在 Web API  MVC 中使用同一個 DTO

  還有另一種方法,就是可以使用一個叫做 FluentValidationNuGet 中可以下載FluentValidation)的第三方程序庫,他可以構建更強大的驗證場景。在這樣的情況下,我們?nèi)匀恍柙谖覀兊哪P椭袑崿F(xiàn) IValidateObject 接口,同時需要依賴于FluentValidation 驗證器,而不是內(nèi)嵌的驗證邏輯。

小提示 ASP.NET Web API 

網(wǎng)友評論