各位客官,好歹点个赞啊!
1.首先 新建一个全局异常处理过滤器类
```csharp
/// <summary>
/// 全局异常过滤器
/// </summary>
public class GlobalExceptionFilter : IExceptionFilter
{
public void OnException(ExceptionContext context)
{
if (!context.ExceptionHandled)//如果异常没处理
{
//判断请求是否来源ajax
if (context.HttpContext.Request.Headers["x-requested-with"] == "XMLHttpRequest")
{
context.ExceptionHandled = true;//设置异常已被处理
context.Result = new JsonResult(new { result = "no", msg = context.Exception.Message });
}
else
{
context.ExceptionHandled = true;//设置异常已被处理
string msg = context.Exception.Message;
context.Result = new RedirectResult("/Account/Error");
}
}
}
}
2.在Startup文件的ConfigureServices方法中注入这个全局过滤器(红色部分)
services.AddControllersWithViews(a => { a.Filters.Add(typeof(GlobalExceptionFilter)); });
备注:来源于ajax请求的异常和来源于控制器方法里面的异常需要分别处理