Core下 配置 ModelState
首先需要禁用掉 自带的ModelState行为
//禁用默认ModelState行为
services.Configure<ApiBehaviorOptions>(options =>
{
options.SuppressModelStateInvalidFilter = true;
});
如未禁用 ,会自动运行ModelState行为 这样 返回值不好操控, 要想自己操控返回值 要利用到Filter
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
var modelState = actionContext.ModelState;
if (!modelState.IsValid)
{
IList<ModelErrorModel> errors = new List<ModelErrorModel>();
foreach (var key in modelState.Keys)
{
var state = modelState[key];
ModelErrorModel errorView = new ModelErrorModel();
errorView.ErrorName = key.ToString();
errorView.ErrorMessage = state.Errors.First().ErrorMessage;
errors.Add(errorView);
}
ResponseModel response = new ResponseModel
{
Code = ModelValidationError.ModelValidationError.GetHashCode(),
Messgae = "请求验证失败",
Data = errors,
};
actionContext.Result = new ContentResult
{
Content = JsonConvert.SerializeObject(response),
ContentType = "application/json"
};
}
}

浙公网安备 33010602011771号