/// <summary> /// 传入参数校验过滤器 /// </summary> public class ValidateReqModelFilter : ActionFilterAttribute { public override void OnActionExecuting(HttpActionContext actionContext) { if (!actionContext.ModelState.IsValid) { actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState);
////若是要自定义返回 //actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest, new ResponseMessage() { Msg = false, Message = error });
} } }
[ValidateReqModelFilter] public class TestController : ControllerEduBase { /// <summary> /// 测试 /// </summary> [HttpPost] [Route("api/Test/saveSchool")] public JsonResult<ResponseMessage> Test(ReqTest req){
var result = new object();
return Json(result);
}
}
public class ReqSaveSchool { /// <summary> /// token /// </summary> [Required(AllowEmptyStrings = false, ErrorMessage = "Token is validate")] public string Token { get; set; } /// <summary> /// id /// </summary> [RegularExpression(@"^[0-9]\d*$",ErrorMessage = "Id is validate")] public int Id { get; set; } /// <summary> /// 名称 /// </summary> [Required] [StringLength(50,ErrorMessage = "Name is exceeding the length limit")] public string Name { get; set; } }
测试结果:若是输入参数校验失败,不会进入controller,直接返回错误信息。api