ASP.NET Core 2.2 项目捕获特定异常时如何重定向用户?

How can I redirect a user when a specific exception is cought with ASP.NET Core 2.2 project?

我有一个项目是使用 C# 在 ASP.NET 核心 2.2 框架之上编写的。

应用程序在发生意外情况时抛出自定义异常。

例如,如果应用无法在数据库中找到默认设置,则会抛出 ApplicationIsNotSetupException()。此异常表明管理员没有按照他们应该使用的安装过程安装项目。因此,我想将它们定向到安装控制器。 (即 SetupController.Install())

如果 ApplicationIsNotSetupException() 被捕获,我如何将用户重定向到特定路线?

您可以将代码插入 try/catch:

try {...yourCode...}
catch (Exception ex)
{
if (ex is ApplicationIsNotSetupException)
..Do what ever you want..
else 
...
}

然后,每次它都会捕获你想要的异常,它会进入 if 循环

有一种可能:

// This should be before app.UseMvc
app.Use(async (context, next) =>
{
    try
    {
        await next();
    }
    catch (ApplicationIsNotSetupException)
    {
        context.Response.Redirect("/setup/install");
    }
});

我找到了这个 ,那里也有一些很好的答案。