.Net Core 3 Razor 页面捕获 404

Posted

技术标签:

【中文标题】.Net Core 3 Razor 页面捕获 404【英文标题】:.Net Core 3 Razor pages catching 404 【发布时间】:2021-02-13 03:01:16 【问题描述】:

我是 Razor 页面的新手,我用 3 个页面构建了一个原型

主机/主页 主机/登录 主机/注销 主机/错误

它正在工作,但我想知道如何捕获 404。例如,如果我调用 host/nonEsistingPage 或 host/somethingelse,我想重定向到 host/Home。

我怎样才能实现它?

【问题讨论】:

【参考方案1】:

尝试在.net core 中使用UseStatusCodePages 中间件。默认情况下,ASP.NET Core 应用不提供 HTTP 状态代码的状态代码页,例如 404 - Not Found。

Startup.Configure method中调用UseStatusCodePages

app.UseStatusCodePages();

如果您想重定向到任何特定的网址,请使用

app.UseStatusCodePagesWithRedirects("/host/Home?code=0");

在 .Net Core 文档中了解有关 app.UseStatusCodePages() 的更多信息:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling?view=aspnetcore-3.1

【讨论】:

以上是关于.Net Core 3 Razor 页面捕获 404的主要内容,如果未能解决你的问题,请参考以下文章

如何在 asp.net core razor 页面中拒绝匿名用户?

Asp .Net Core 3.1 Razor 页面:复杂模型绑定

ASP.NET Core 3.1 Razor 页面路由不明确匹配异常

Asp.net Core 3.1-如何从控制器返回到 Razor 页面?

部分页面上的 ASP.NET Core 3.0 Razor JQuery 验证规则

[ASP.NET Core 3.1 MVC Razor页面仅在模型成员有效时显示图标