我想在我的应用程序内部实现一个页面,该页面在blazor路由器无法找到匹配的路由时出现。目前,所有的请求都被路由到index.html
,所以我无法像正常情况下那样通过iis处理错误。如果我输入了一个无效的路由,我将看到一个空白页面(实际上是index.html
),并收到控制台错误:
'Router' cannot find any component with a route for '/some/Nonexistent/Route'.
看起来我应该能够处理这个问题,因为blazor路由器能够识别出没有定义与所请求的路由匹配的路由,但是到目前为止,我还找不到任何关于这方面的文档。
我如何实现这一点?有没有办法连接到blazor路由器,并将所有未找到的路由定向到预定义的错误路由?
我看到https://github.com/aspnet/AspNetCore/issues/5489列出了一个404处理程序的问题,但是我不确定这是不是为了比我要做的事情更健壮和更好的生产准备
发布于 2018-12-20 06:18:29
试试这个: App.cshtml
<Router AppAssembly=typeof(Program).Assembly FallbackComponent="typeof(Error404)" >
创建一个名为Error404.cshtml的组件
注意:这只是我在挖掘Router类时得到的猜测。请参阅https://github.com/aspnet/AspNetCore/blob/343208331d9ebbb3a67880133f4139bee2cb1c71/src/Components/src/Microsoft.AspNetCore.Components/Routing/Router.cs
请让我知道它是否对你有效。
发布于 2019-08-22 00:33:20
在App.razor
中,将<NotFound>
元素添加到<Router>
下,并设置当Blazor找不到指定的路由时要显示的内容。
例如:
<Router AppAssembly="typeof(Program).Assembly">
<NotFound>
<h1>404 Not Found</h1>
</NotFound>
</Router>
(注意:如果它是一个服务器端应用程序,那么它将是typeof(Startup).Assembly
)
发布于 2021-10-01 11:23:36
您可以将此链接用于.net 5.0 blazor服务器端应用程序。你可以正确处理404和状态码
https://stackoverflow.com/questions/53859078
复制相似问题