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

