Gre*_*egH 4 .net-core asp.net-core .net-core-2.0 blazor
我想实现我的应用程序内部的页面,当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处理程序的问题,但是我不确定这是否是比我想要做的更健壮和可以生产的东西
在 App.razor 中,在下面添加<NotFound>
元素<Router>
并设置当 Blazor 找不到指定路由时要显示的内容。
例如:
<Router AppAssembly="typeof(Program).Assembly">
<NotFound>
<h1>404 Not Found</h1>
</NotFound>
</Router>
Run Code Online (Sandbox Code Playgroud)
(注意:如果它是服务器端应用程序,那么它将是 typeof(Startup).Assembly)
编辑:更改<NotFoundContent>
到<NotFound>
试试这个:App.cshtml
<Router AppAssembly=typeof(Program).Assembly FallbackComponent="typeof(Error404)" >
Run Code Online (Sandbox Code Playgroud)
创建一个名为Error404.cshtml的组件
注意:这只是我从挖掘Router类收集的猜测。参见https://github.com/aspnet/AspNetCore/blob/343208331d9ebbb3a67880133f4139bee2cb1c71/src/Components/src/Microsoft.AspNetCore.Components/Routing/Router.cs
请让我知道它是否适合您。
归档时间: |
|
查看次数: |
1055 次 |
最近记录: |