gpt4 book ai didi

http - ASP.NET Core 自定义中间件重定向到操作不起作用

转载 作者:行者123 更新时间:2023-12-04 01:31:44 24 4
gpt4 key购买 nike

我正在尝试使用自定义中间件来处理 404 错误:

app.Use(async (context, next) =>
{
await next();
if (context.Response.StatusCode == 404)
{
context.Request.Path = "/error/404";
await next();
}
});

但是在错误 Controller 中没有调用所需的操作:
[Route("error")]
public class ErrorController : Controller
{
public ErrorController()
{
}

[Route("404")]
public IActionResult PageNotFound()
{
return View();
}
}

我已经检查过如果直接像 "http:\localhost\error\404"那样进行调用,它会被调用

最佳答案

如果可能,您可以尝试使用 UseStatusCodePagesWithReExecute extension method达到您的要求。

app.UseStatusCodePagesWithReExecute("/error/{0}");

此外,在您的自定义中间件代码逻辑中,您可以修改代码以重定向到目标 url。
if (context.Response.StatusCode == 404)
{
//context.Request.Path = "/error/404";

context.Response.Redirect("/error/404");
return;
}

关于http - ASP.NET Core 自定义中间件重定向到操作不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60890539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com