.net Blazor中的等效角路由器输出
Angular有一个RouterOutlet,它允许自动更改组件内部的内容 视路线而定 看来Blazor没有这样的机会.net Blazor中的等效角路由器输出,.net,blazor,.net,Blazor,Angular有一个RouterOutlet,它允许自动更改组件内部的内容 视路线而定 看来Blazor没有这样的机会 我如何在Blazor中实现这一点?没有任何奇特的内置功能,但您可以使用导航管理器或路由绑定来实现 路由绑定 一个页面组件可以有多个路由。对于简单的二进制情况,例如在添加和编辑页面之间共享逻辑,您可以利用这一点 @page “/modifyperson” @page “/modifyperson/{Id}” @if(isEdit) { }
我如何在Blazor中实现这一点?没有任何奇特的内置功能,但您可以使用导航管理器或路由绑定来实现
@page “/modifyperson”
@page “/modifyperson/{Id}”
@if(isEdit)
{
}
@code
{
[Parameter]
public string Id {get; set;}
bool isEdit;
protected override void OnInitialized()
{
if(!String.IsNullOrEmpty(Id))
IsEdit=true;
}
}
请注意,OnInitialized不是此场景的理想选择,您应该真正使用
SetParameters
或SetParametersAsync
-请参阅
@page ”/myfirstroute”
@page “/mysecondroute”
@inject NavigationManager navManager
@if(lastRouteInfo==PageRoutes.FirstRoute)
{
//do something different
}
@code
{
public enum PageRoutes{FirstRoute,SecondRoute}
private PageRoutes route;
protected override void OnInitialized()
{
string lastRouteInfo= navManager.Uri.Split(“/“).Last();
if(lastRouteInfo==“myfirstroute”)
route=PageRoutes.FirstRoute;
else if(lastRouteInfo==“mysecondroute”)
route =PageRoutes.SecondRoute;
}
}