.Net Web Api中利用FluentValidate進(jìn)行參數(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ù)
需要在進(jìn)入Controller之前進(jìn)行驗證,如果有錯誤就返回,不再進(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);
}
}
}
如果要讓這個過濾器對所有的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)文章
.NET Core3.0創(chuàng)建Worker Services的實現(xiàn)
這篇文章主要介紹了.NET Core3.0創(chuàng)建Worker Services的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
asp.net 2.0 中的URL重寫以及urlMappings問題
asp.net 2.0 中的URL重寫以及urlMappings問題...2007-04-04
用類的繼承關(guān)系(重寫父類的方法)實現(xiàn)簡易后臺代碼模板
Asp.net的優(yōu)勢就在于快速構(gòu)建應(yīng)用,而對于一些最基礎(chǔ)數(shù)據(jù)的增刪改以及分頁事件或者樣式的設(shè)定可以通過在父類中寫上虛方法來供子類調(diào)用,接下來將為您測試一下用子類重寫父類的方法實現(xiàn)在模板的基礎(chǔ)上衍生變化2013-01-01

