.Net Web Api中利用FluentValidate進行參數(shù)驗證的方法
前言
本文主要介紹了關(guān)于.Net Web Api用FluentValidate參數(shù)驗證的相關(guān)內(nèi)容,下面話不多說了,來一起看看詳細(xì)的介紹吧。
方法如下
安裝FluentValidate
在ASP.NET Web Api中請安裝 FluentValidation.WebApi版本
創(chuàng)建一個需要驗證的Model
public class Product { public string name { get; set; } public string des { get; set; } public string place { get; set; } }
配置FluentValidation,需要繼承AbstractValidator類,并添加對應(yīng)的驗證規(guī)則
public class ProductValidator : AbstractValidator<Product> { public ProductValidator() { RuleFor(product => product.name).NotNull().NotEmpty();//name 字段不能為null,也不能為空字符串 } }
在Config中配置 FluentValidation
在 WebApiConfig配置文件中添加
public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API routes ... FluentValidationModelValidatorProvider.Configure(config); } }
驗證參數(shù)
需要在進入Controller之前進行驗證,如果有錯誤就返回,不再進入Controller,需要使用 ActionFilterAttribute
public class ValidateModelStateFilter : ActionFilterAttribute { public override void OnActionExecuting(HttpActionContext actionContext) { if (!actionContext.ModelState.IsValid) { actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState); } } }
如果要讓這個過濾器對所有的Controller都起作用,請在WebApiConfig中注冊
public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API configuration and services config.Filters.Add(new ValidateModelStateFilter()); // Web API routes ... FluentValidationModelValidatorProvider.Configure(config); } }
如果指對某一個Controller起作用,可以在Controller注冊
[ValidateModelStateFilter] public class ProductController : ApiController { //具體的邏輯 }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- 詳解ASP.NET Core WebApi 返回統(tǒng)一格式參數(shù)
- asp.net core webapi項目配置全局路由的方法示例
- ASP.NET WebAPI連接數(shù)據(jù)庫的方法
- .Net WebApi消息攔截器之MessageHandler的示例
- .Net Core2.1 WebAPI新增Swagger插件詳解
- ASP.net WebAPI跨域調(diào)用問題的解決方法
- asp.net core webapi 服務(wù)端配置跨域的實例
- ASP.NET Core 2.0 WebApi全局配置及日志實例
- asp.net core 2.0 webapi集成signalr(實例講解)
- 詳解.net core webapi 前后端開發(fā)分離后的配置和部署
相關(guān)文章
詳解ASP.NET Core 網(wǎng)站發(fā)布到Linux服務(wù)器
本篇文章主要介紹了ASP.NET Core 網(wǎng)站發(fā)布到Linux服務(wù)器 。具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04Asp.net MVC scheduler的實現(xiàn)方法詳解
這篇文章主要介紹了Asp.net MVC scheduler的實現(xiàn)方法詳解的相關(guān)資料,希望通過本文大家能夠?qū)崿F(xiàn)這樣的方法,需要的朋友可以參考下2017-10-10asp.net2.0如何加密數(shù)據(jù)庫聯(lián)接字符串
asp.net2.0如何加密數(shù)據(jù)庫聯(lián)接字符串...2006-09-09ASP.NET Core使用SkiaSharp實現(xiàn)驗證碼的示例代碼
本篇文章主要介紹了ASP.NET Core使用SkiaSharp實現(xiàn)驗證碼的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12ASP.NET生成eurl.axd Http異常錯誤的處理方法
在IIS6中同時啟用了ASP.NET 2.0 和 ASP.NET 4.0 后,網(wǎng)站程序可能會出現(xiàn)如下錯誤:“ System.Web.HttpException: Path ‘//eurl.axd/‘ was not found. ”2011-05-05詳解.Net Core + Angular2 環(huán)境搭建
這篇文章主要介紹了詳解.Net Core + Angular2 環(huán)境搭建,具有一定的參考價值,有興趣的可以了解一下。2016-12-12asp.net內(nèi)置對象 Response對象使用介紹
這篇文章主要介紹了asp.net內(nèi)置對象:Response對象使用介紹,對Response對象感興趣的小伙伴們可以參考一下2015-11-11