GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!
 【 如果你想靠AI翻身,你先需要一个靠谱的工具! 】
前言
本文主要介绍了关于.Net Web Api用FluentValidate参数验证的相关内容,下面话不多说了,来一起看看详细的介绍吧。
方法如下
安装FluentValidate
在ASP.NET Web Api中请安装 FluentValidation.WebApi版本
创建一个需要验证的Model
| 1 2 3 4 5 6 | publicclassProduct { publicstringname { get; set; } publicstringdes { get; set; } publicstringplace { get; set; }} | 
配置FluentValidation,需要继承AbstractValidator类,并添加对应的验证规则
| 1 2 3 4 5 6 7 | publicclassProductValidator : AbstractValidator<Product>{ publicProductValidator() {  RuleFor(product => product.name).NotNull().NotEmpty();//name 字段不能为null,也不能为空字符串 }} | 
在Config中配置 FluentValidation
在 WebApiConfig配置文件中添加
| 1 2 3 4 5 6 7 8 9 | publicstaticclassWebApiConfig{ publicstaticvoidRegister(HttpConfiguration config) {  // Web API routes  ...  FluentValidationModelValidatorProvider.Configure(config); }} | 
验证参数
需要在进入Controller之前进行验证,如果有错误就返回,不再进入Controller,需要使用 ActionFilterAttribute
| 1 2 3 4 5 6 7 8 9 10 | publicclassValidateModelStateFilter : ActionFilterAttribute{ publicoverridevoidOnActionExecuting(HttpActionContext actionContext) {  if(!actionContext.ModelState.IsValid)  {   actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState);  } }} | 
如果要让这个过滤器对所有的Controller都起作用,请在WebApiConfig中注册
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | publicstaticclassWebApiConfig{ publicstaticvoidRegister(HttpConfiguration config) {  // Web API configuration and services  config.Filters.Add(newValidateModelStateFilter());  // Web API routes  ...FluentValidationModelValidatorProvider.Configure(config); }} | 
如果指对某一个Controller起作用,可以在Controller注册
| 1 2 3 4 5 | [ValidateModelStateFilter]publicclassProductController : ApiController{ //具体的逻辑} | 
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。