介绍
怎么在。净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进行参数验证