.NET 8 Blazor Server中NotFound错误如何在应用主体内显示?
解决方案
问题根源在于<NotFound>块中的内容没有应用你的MainLayout,所以会直接全屏渲染;而匹配到路由的页面是通过<RouteView>指定了DefaultLayout,才会进入布局中的错误边界,在主体区域显示错误。
要让404错误也显示在应用主体内,只需要在<NotFound>中手动包裹MainLayout即可:
修改Routes.razor中的<NotFound>部分:
<NotFound> <Layout.MainLayout> <Error ErrorDetail='new Exception("Route Not Found")' /> </Layout.MainLayout> </NotFound>
这样修改后,404错误组件就会嵌入到MainLayout的主体区域(也就是原来@Body的位置),和其他页面抛出的错误表现一致,用户依然可以操作应用的其他部分。
内容的提问来源于stack exchange,提问作者bilpor
相关产品推荐
相关产品推荐

