.Net Web Api中利用FluentValidate進行參數驗證的方法
前言
本文主要介紹了關于.Net Web Api用FluentValidate參數驗證的相關內容,下面話不多說了,來一起看看詳細的介紹吧。
方法如下
安裝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類,并添加對應的驗證規(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); } }
驗證參數
需要在進入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 { //具體的邏輯 }
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- 詳解ASP.NET Core WebApi 返回統(tǒng)一格式參數
- asp.net core webapi項目配置全局路由的方法示例
- ASP.NET WebAPI連接數據庫的方法
- .Net WebApi消息攔截器之MessageHandler的示例
- .Net Core2.1 WebAPI新增Swagger插件詳解
- ASP.net WebAPI跨域調用問題的解決方法
- asp.net core webapi 服務端配置跨域的實例
- ASP.NET Core 2.0 WebApi全局配置及日志實例
- asp.net core 2.0 webapi集成signalr(實例講解)
- 詳解.net core webapi 前后端開發(fā)分離后的配置和部署
相關文章
詳解ASP.NET Core 網站發(fā)布到Linux服務器
本篇文章主要介紹了ASP.NET Core 網站發(fā)布到Linux服務器 。具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04ASP.NET Core使用SkiaSharp實現驗證碼的示例代碼
本篇文章主要介紹了ASP.NET Core使用SkiaSharp實現驗證碼的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12ASP.NET生成eurl.axd Http異常錯誤的處理方法
在IIS6中同時啟用了ASP.NET 2.0 和 ASP.NET 4.0 后,網站程序可能會出現如下錯誤:“ System.Web.HttpException: Path ‘//eurl.axd/‘ was not found. ”2011-05-05詳解.Net Core + Angular2 環(huán)境搭建
這篇文章主要介紹了詳解.Net Core + Angular2 環(huán)境搭建,具有一定的參考價值,有興趣的可以了解一下。2016-12-12