Blazor服务器如何路由



Blazor服务器应用程序上没有大量文档,我知道它使用SignalR,但该项目不包含HomeController。所以我想知道在没有它的情况下在布拉佐尔怎么走?它只是基于页面和组件的角色/策略授权吗?

您的问题不是很具体,但blazor应用程序中的路由是由App.razor中的Router组件完成的。Router将扫描给定组件,查找具有@page指令的剃须刀组件。这些剃须刀组件是可路由的,并且能够通过RouteView-组件显示。

App.razor:

<Router AppAssembly="@typeof(Program).Assembly">
<Found Context="routeData">
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
</Found>
<NotFound>
<p>Sorry, there's nothing at this address.</p>
</NotFound>
</Router>

对于授权,还有另一个名为AuthorizeRouteViewRouteView-组件,但这需要用CascadingAuthenticationState包装整个Route-组件。

App.razor与auth:

<CascadingAuthenticationState>
<Router AppAssembly="@typeof(Program).Assembly">
<Found Context="routeData">
<AuthorizeRouteView RouteData="@routeData" 
DefaultLayout="@typeof(MainLayout)" />
</Found>
<NotFound>
<LayoutView Layout="@typeof(MainLayout)">
<p>Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
</Router>
</CascadingAuthenticationState>

基本路由在这里的微软文档中有很好的描述。对于带有路由的auth,这里还有一篇docu文章。

相关内容

  • 没有找到相关文章

最新更新