亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

.Net Web Api中利用FluentValidate進(jìn)行參數(shù)驗(yàn)證的方法

 更新時(shí)間:2018年07月05日 11:06:35   作者:CodeMiner  
最近在做Web API,用到了流式驗(yàn)證,就簡(jiǎn)單的說說這個(gè)流式驗(yàn)證,下面這篇文章主要給大家介紹了關(guān)于.Net Web Api中利用FluentValidate進(jìn)行參數(shù)驗(yàn)證的相關(guān)資料,,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

本文主要介紹了關(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ì)腳本之家的支持。

相關(guān)文章

最新評(píng)論