自定义分三步走
第一步:
新建自定义返回类型
public class Result<T>
{
public bool state { get; set; }
public String error_msg { get; set; }
public T data { get; set; }
}
第二步:
新建验证类
/// <summary>
/// 控制器方法执行前执行
/// </summary>
/// <param name="context"></param>
public void OnActionExecuting(ActionExecutingContext context)
{
var modelState = context.ModelState;
if (!modelState.IsValid)
{
string error = string.Empty;
foreach (var item in modelState.Keys)
{
var state = modelState[item];
if (state.Errors.Any())
{
error = state.Errors.First().ErrorMessage;
break;
}
}
//自定义返回类型
Result<string> result = new Result<string>
{
state = false,
//赋值自定义错误信息
error_msg = error
};
context.Result = new JsonResult(result);
}
}
/// <summary>
/// 控制器方法执行后执行
/// </summary>
/// <param name="context"></param>
public void OnActionExecuted(ActionExecutedContext context)
{
}
第三步:
注入验证类型
//开启自定义Filder对象
services.Configure<ApiBehaviorOptions>(opts => opts.SuppressModelStateInvalidFilter = true);
//注入
services.AddMvc(option =>
{
option.Filters.Add<XcActionFilter>();
});