重定向到自定义错误页面

ASP.NET Core 提供了状态代码页中间件 ,它支持几种不同的扩展方法,但我们对 UseStatusCodePagesUseStatusCodePagesWithRedirects 感兴趣:

  • UseStatusCodePages 添加一个 StatusCodePages 中间件,其中包含给定的选项,用于检查状态代码在 400 和 599 之间且没有正文的响应。用于重定向的示例:

    app.UseStatusCodePages(async context => {
      //context.HttpContext.Response.StatusCode contains the status code
    
      // your redirect logic
    
    });
    
  • UseStatusCodePagesWithRedirects 将一个 StatusCodePages 中间件添加到管道。指定应通过使用给定位置 URL 模板重定向来处理响应。这可能包括状态代码的“{0}”占位符。以“〜”开头的网址将预先添加 PathBase,其中任何其他网址都将按原样使用。例如,以下将重定向到〜/ errors / <error_code>(例如〜/ errors / 403 表示 403 错误):

    app.UseStatusCodePagesWithRedirects("~/errors/{0}");