当前位置: 首页 > 编程笔记 >

.Net Web Api中利用FluentValidate进行参数验证的方法

徐隐水
2023-03-14
本文向大家介绍.Net Web Api中利用FluentValidate进行参数验证的方法,包括了.Net Web Api中利用FluentValidate进行参数验证的方法的使用技巧和注意事项,需要的朋友参考一下

前言

本文主要介绍了关于.Net Web Api用FluentValidate参数验证的相关内容,下面话不多说了,来一起看看详细的介绍吧。

方法如下

安装FluentValidate

在ASP.NET Web Api中请安装 FluentValidation.WebApi版本

创建一个需要验证的Model

 public class Product 
 {
  public string name { get; set; }
  public string des { get; set; }
  public string place { get; set; }
 }

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

 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);
 }
}

验证参数

需要在进入Controller之前进行验证,如果有错误就返回,不再进入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
{
 //具体的逻辑
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。

 类似资料:
  • 问题内容: 使用Mockito,我可以执行以下操作: 但是,如果要取而代之,我该怎么写呢?无法弄清楚如何正确编写。刚收到语法错误… 问题答案: 尝试: 实际上,当我键入IntelliJ时,它会自动建议此修复程序。不幸的是,在这种情况下,您不能使用静态导入。

  • 本文向大家介绍Spring Boot利用JSR303实现参数验证的方法实例,包括了Spring Boot利用JSR303实现参数验证的方法实例的使用技巧和注意事项,需要的朋友参考一下 简介 JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation。 在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情。应用程序必须通过某种手段来确保输

  • 我正在尝试使用reverfit向Google GeoCode API发送一个请求。服务界面如下所示: 当我调用服务时: 我收到以下StackTrace: 我从这里获取了大量的代码:http://square.github.io/reverfit/所以我有点不理解这个问题。 想法?

  • 为了验证输入字段是否包含数值,我正在使用jQuery的isNumic()方法: 这在大多数情况下都可以正常工作,但以下示例失败了: 如果不是数值,则返回true。 有没有更好的方法在不使用任何其他插件的情况下进行此类验证? 谢谢。

  • 我试图验证方法的参数是否为空,但我没有找到解决方案。。。 有人可以告诉我该怎么做吗? 我正在尝试这样的事情:

  • 我正在通过函数验证用户输入。 这是我的代码: 我需要验证用户提供的和的值,以确保它们都是0或更大且不为空。不应接受负值或除数字以外的任何内容。 验证代码应该在get\u double函数中,我似乎不知道如何验证驻留在单独函数中的内容。请寻求指导。