在ASP.NET Web Api中请安装 FluentValidation.WebApi
版本bash
public class Product
{
public string name { get; set; }
public string des { get; set; }
public string place { get; set; }
}
复制代码
配置FluentValidation
,须要继承AbstractValidator
类,并添加对应的验证规则ide
public class ProductValidator : AbstractValidator<Product>
{
public ProductValidator()
{
RuleFor(product => product.name).NotNull().NotEmpty();//name 字段不能为null,也不能为空字符串
}
}
复制代码
在 WebApiConfig
配置文件中添加ui
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API routes
...
FluentValidationModelValidatorProvider.Configure(config);
}
}
复制代码
须要在进入Controller
以前进行验证,若是有错误就返回,再也不进入Controller
,须要使用 ActionFilterAttribute
spa
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
{
//具体的逻辑
}
复制代码