首页 > 解决方案 > 无法重定向到 Blazor 服务器中的错误页面,因为它将 200 状态代码返回到不存在的页面

问题描述

在 Blazor 中,我们可以直接将路由分配给剃须刀本身的每个页面。(这是有趣的部分)但是当输入任何不存在的 url 时,我想导航到“/error”或“/404”页面。请帮助我如何获得 404 状态并实现重定向。因为它是 SEO 目的的一项重要任务。

我尝试了许多解决方案: 1:我创建了一个组件“error.razor”并将该组件添加到 app.razor 的notfound部分中。在这种情况下,我在地址栏 2 中获得具有相同不存在 url 的 200 状态代码:为了进行强制重定向,我在“error.razor”中注入了 NavigationManager,在 NavigationManager 的帮助下,我将其重定向到 404 页面. 即 302 重定向。

编辑:我正在尝试在不存在的页面上获取 400 状态代码。但我得到 200。如何在网络面板中获得正确的 400 错误状态。帮我解决这个问题。

FYR: 正确的网址

损坏的 URL/不存在的 URL

如果您有任何解决方案,请帮助我。

标签: blazor-server-side.net-5blazor-routing

解决方案


您可以编写一个自定义NotFoundPage组件,该组件将显示您希望用户在导航到不存在的页面时看到的内容,并将其放在 NotFound Context 中app.razor

<Router>
    <NotFound>
        <CascadingAuthenticationState>
            <NotFoundPage></NotFoundPage> 
        </CascadingAuthenticationState>
    <NotFound>
</Router>

推荐阅读