雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

.NET Core里UseStatusCodePagesWithReExecute和UseStatusCodePagesWithRedirects的区别

2024-06-19 84

UseStatusCodePagesWithReExecute 和 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}");
更新于:6个月前
赞一波!2

文章评论

评论问答