之前,我做过Asp.Net Core的Model验证,在Core中过滤器对响应的处理很简单
context.Result = new JsonResult(ErrorMsg);
但是,在Asp.Net中context是没有Result这个属性的,只有一个Response属性可以对响应结果进行处理
context.Response=new HttpResponseMessage(statusCode: HttpStatusCode.OK) { Content = new StringContent(ErrorMsg, Encoding.GetEncoding("UTF-8"), "application/json") };
其中HttpStatusCode.OK状态需要注意,如果不设置成OK那么前端调用时就会抛出异常,这时ErrorMsg的信息就将遭到破坏。