.NET Core里UseStatusCodePagesWithReExecute和UseStatusCodePagesWithRedirects的区别
2024-05-16
863 0UseStatusCodePagesWithReExecute 和 UseStatusCodePagesWithRedirects 都是 ASP.NET Core 中用于处理状态码页面的中间件。 它们都允许你自定义应用程序对特定状态码的响应,例如 404 未找到错误或 500 内部服务器错误。
主要区别在于它们如何处理状态码错误:
UseStatusCodePagesWithReExecute
当遇到状态码错误时,它会将请求重新路由到指定的路径,该路径通常包含用于处理错误的自定义视图或控制器操作。
重新路由会导致对原始请求的第二个 HTTP 请求。
从最终用户的角度来看,浏览器会显示自定义错误页面,但 URL 将保持不变。
UseStatusCodePagesWithRedirects
当遇到状态码错误时,它会向指定的路径发出重定向,该路径通常包含用于处理错误的自定义视图或控制器操作。
重定向会导致对新 URL 的新 HTTP 请求。
从最终用户的角度来看,浏览器会将用户定向到新的 URL,并显示自定义错误页面。
总结
使用 UseStatusCodePagesWithReExecute 当你希望在不更改 URL 的情况下显示自定义错误页面时。
使用 UseStatusCodePagesWithRedirects 当你希望将用户重定向到新的 URL 并显示自定义错误页面时。
以下是一些代码示例:
使用 UseStatusCodePagesWithReExecute 显示 404 未找到错误页面:
app.UseStatusCodePagesWithReExecute("/Error/{0}");
使用 UseStatusCodePagesWithRedirects 将用户重定向到 404 未找到错误页面:
app.UseStatusCodePagesWithRedirects("/Error/{0}");
您可能感兴趣: