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

解決方案

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

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

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

小提示 ASP.NET Web API 

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式