You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.7 KiB
C#

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
using Ys.Core.Common;
namespace djyweb_djyPaasApi
{
public class YsExceptionfilter : ActionFilterAttribute,IExceptionFilter
{
public void OnException(ExceptionContext context)
{
var rs = new ReturnResult<object>();
var response = context.HttpContext.Response;
response.StatusCode = 200;
response.WriteAsync(JsonSerializer.Serialize(rs, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
//在Action执行之前由 MVC 框架调用。
public new void OnActionExecuting(ActionExecutingContext filterContext)
{
var rs = new ReturnResult<object>();
var response = filterContext.HttpContext.Response;
response.StatusCode = 200;
filterContext.Result = new BadRequestObjectResult(rs);
response.WriteAsync(JsonSerializer.Serialize(rs, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
//在Action执行之后由 MVC 框架调用。
public new void OnActionExecuted(ActionExecutedContext filterContext)
{
var rs = new ReturnResult<object>();
var response = filterContext.HttpContext.Response;
response.StatusCode = 200;
filterContext.Result = new BadRequestObjectResult(rs);
response.WriteAsync(JsonSerializer.Serialize(rs, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
//在执行Result之前由 MVC 框架调用。
public new void OnResultExecuting(ResultExecutingContext filterContext)
{
var rs = new ReturnResult<object>();
var response = filterContext.HttpContext.Response;
response.StatusCode = 200;
filterContext.Result = new BadRequestObjectResult(rs);
response.WriteAsync(JsonSerializer.Serialize(rs, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
//在执行Result后由 MVC 框架调用。
public new void OnResultExecuted(ResultExecutedContext filterContext)
{
var rs = new ReturnResult<object>();
var response = filterContext.HttpContext.Response;
response.StatusCode = 200;
response.WriteAsync(JsonSerializer.Serialize(rs, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
}
}