怎么在。净Web Api中利用FluentValidate进行参数验证

  介绍

怎么在。净Web Api中利用FluentValidate进行参数验证?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>方法如下

安装FluentValidate

在ASP。净Web Api中请安装FluentValidation。WebApi版本

创建一个需要验证的模型

, public  class  Product    ,{   public 才能string  name {组,得到,,,}   public 才能string  des {组,得到,,,}   public 才能string  place {组,得到,,,}   以前,}

配置FluentValidation,需要继承AbstractValidator类,并添加对应的验证规则

, public  class  ProductValidator :, AbstractValidator   ,{   public 才能;ProductValidator ()   {才能   ,,RuleFor (product =祝辞,product.name) .NotNull () .NotEmpty ();//name 字段不能为null,也不能为空字符串   ,,}   以前,}

在配置中配置FluentValidation

在WebApiConfig配置文件中添加

public  static  class  WebApiConfig   {   ,public  static  void 注册(HttpConfiguration 配置)   ,{//才能,Web  API 路线   ,,…   FluentValidationModelValidatorProvider.Configure才能(配置);   ,}   }

<>强验证参数

需要在进入控制器之前进行验证,如果有错误就返回,不再进入控制器,需要使用ActionFilterAttribute

public  class  ValidateModelStateFilter : ActionFilterAttribute   {   ,public  override  void  OnActionExecuting (HttpActionContext  actionContext)   ,{   if 才能;(actionContext.ModelState.IsValid !)   {才能   ,,actionContext.Response =, actionContext.Request.CreateErrorResponse (actionContext.ModelState HttpStatusCode.BadRequest也);   ,,}   ,}   }

如果要让这个过滤器对所有的控制器都起作用,请在WebApiConfig中注册

public  static  class  WebApiConfig   {   ,public  static  void 注册(HttpConfiguration 配置)   ,{//才能,Web  API  configuration 以及服务   config.Filters.Add才能(new  ValidateModelStateFilter ());//才能,Web  API 路线   ,,…      FluentValidationModelValidatorProvider.Configure(配置);   ,}   }

如果指对某一个控制器起作用,可以在控制器注册

[ValidateModelStateFilter]   public  class  ProductController : ApiController   {   ,//具体的逻辑   }

看完上述内容,你们掌握怎么在。净Web Api中利用FluentValidate进行参数验证的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

怎么在。净Web Api中利用FluentValidate进行参数验证