我使用UseStatusCodePages中间件在我的应用程序上显示状态代码页,但是它在UI上显示纯文本而没有任何其他信息,
我想显示用户界面与状态代码信息,以及其他一些有用的信息,如客户支持号码与更多的用户友好的页面。
我发现我们可以使用两种扩展方法来实现这一点,即UseStatusCodePagesWithRedirects和UseStatusCodePagesWithReExecute。我从Microsoft那里发现的唯一不同是,
UseStatusCodePagesWithRedirects:将302发送到客户端。
UseStatusCodePagesWithReExecute:发送原始状态代码和执行处理程序以重定向URL。
这是唯一的区别吗?
发布于 2019-04-19 09:03:49
我认为主要的区别在于,UseStatusCodePagesWithRedirects将您重定向到错误控制器操作方法,而UseStatusCodePagesWithReExecute只是呈现页面而不重定向。
示例
控制器动作
[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错误)
网址:页面
1) UseStatusCodePagesWithRedirects
结果
网址是:https://localhost:5001/error/404
我们看到了Error404页面
2) UseStatusCodePagesWithReExecute
结果
网址是:页面
我们看到了Error404页面
Case2 (401错误)
网址:https://localhost:5001/admin/users
1) UseStatusCodePagesWithRedirects
结果
网址是:https://localhost:5001/error/401
我们在无穷大的循环中叠加
1) UseStatusCodePagesWithRedirects
结果
网址是:https://localhost:5001/admin/users
对于401错误,我们看到默认浏览器错误页。
发布于 2020-08-22 08:38:40
在使用app.UseStatusCodePagesWithRedirects("/Error/{0}")和无效请求(例如"/abc/xyz")时引发,然后引发;
但在使用app.UseStatusCodePagesWithReExecute("/Error/{0}")和无效请求(例如"/abc/xyz")时,将引发;
https://stackoverflow.com/questions/50400452
复制