我正在使用 UseStatusCodePages 中间件在我的应用程序上显示状态代码页,但它在 UI 上显示纯文本,没有任何其他信息,
我想显示带有状态代码信息的 UI 以及一些其他有用的信息,例如具有更用户友好页面的客户支持号码。
我发现我们可以使用两种扩展方法来做到这一点,即 UseStatusCodePagesWithRedirects 和 UseStatusCodePagesWithReExecute。我发现的唯一区别 Microsoft Docs是,
UseStatusCodePagesWithRedirects : 向客户端发送 302。
UseStatusCodePagesWithReExecute :发送原始状态代码并执行重定向 URL 的处理程序。
这是唯一的区别吗?
最佳答案
我认为主要区别在于 UseStatusCodePagesWithRedirects 将您重定向到错误 Controller 操作方法,而 UseStatusCodePagesWithReExecute 只是呈现页面而没有重定向
示例
Controller Action
[Route("error/404")]
public IActionResult Error404(int code)
{
return View("Error404");
}
[Route("error/{code}")]
public IActionResult Error(int code)
{
return StatusCode(code);
}
启动Cinfigue
app.UseStatusCodePagesWithRedirects("/error/{0}");
或者
app.UseStatusCodePagesWithReExecute("/error/{0}");
案例 1(404 错误)
网址:https://localhost:5001/notexits_page
1) UseStatusCodePagesWithRedirects
结果:
网址是:https://localhost:5001/error/404
我们看到Error404页面
2) UseStatusCodePagesWithReExecute
结果:
网址是:https://localhost:5001/notexits_page
我们看到Error404页面
案例 2(401 错误)
网址:https://localhost:5001/admin/users
1) UseStatusCodePagesWithRedirects
结果:
网址是:https://localhost:5001/error/401
我们在无限循环中堆叠
1) UseStatusCodePagesWithRedirects
结果:
网址是:https://localhost:5001/admin/users
我们看到 401 错误的默认浏览器错误页面
关于asp.net-core - UseStatusCodePagesWithRedirects 和 UseStatusCodePagesWithReExecute 之间的区别 - Asp.net core 中的状态代码页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50400452/