Asp.net core 布拉佐。单击乘法时,导航链接在foreach块中不工作
我创建了Asp.net core 布拉佐。单击乘法时,导航链接在foreach块中不工作,asp.net-core,blazor,asp.net-core-3.0,Asp.net Core,Blazor,Asp.net Core 3.0,我创建了NavLink的列表,这只是它们之间的一个区别,动态参数Id <div> @foreach (var service in pageGlobal.Person.Services) { var link = $"service_description/{service.Identifier}"; <ul class="nav flex-column"> <li class="nav-item
NavLink
的列表,这只是它们之间的一个区别,动态参数Id
<div>
@foreach (var service in pageGlobal.Person.Services)
{
var link = $"service_description/{service.Identifier}";
<ul class="nav flex-column">
<li class="nav-item px-3">
<NavLink class="nav-link" href="@link">
@service.Name
</NavLink>
</li>
</ul>
}
</div>
如何使用
NavLink
功能强制客户端重新加载servicescription.razor
新参数?此问题是由OnInitializedAsync
引起的。对于OnInitializedAsync
,只有在组件准备启动时调用组件时才会调用它
如果要根据参数更改服务
,应使用OnParametersSetAsync
如下所示:
protected override async Task OnParametersSetAsync()
{
pageGlobal = new PageGlobal
{
Person = new Person()
{
Services = new List<Service>(){
new Service{ Identifier = 1, Name = "Test1", Description = "D1" },
new Service{ Identifier = 2, Name = "Test2" , Description = "D2" },
new Service{ Identifier = 3, Name = "Test3", Description = "D3" }
}
}
};
service = pageGlobal.Person.Services.Where(e => e.Identifier == Id).FirstOrDefault();
}
受保护的覆盖异步任务OnParametersSetAsync()
{
pageGlobal=新的pageGlobal
{
Person=新的Person()
{
服务=新列表(){
新服务{Identifier=1,Name=“Test1”,Description=“D1”},
新服务{Identifier=2,Name=“Test2”,Description=“D2”},
新服务{Identifier=3,Name=“Test3”,Description=“D3”}
}
}
};
service=pageGlobal.Person.Services.Where(e=>e.Identifier==Id.FirstOrDefault();
}
你可以查一下
protected override async Task OnParametersSetAsync()
{
pageGlobal = new PageGlobal
{
Person = new Person()
{
Services = new List<Service>(){
new Service{ Identifier = 1, Name = "Test1", Description = "D1" },
new Service{ Identifier = 2, Name = "Test2" , Description = "D2" },
new Service{ Identifier = 3, Name = "Test3", Description = "D3" }
}
}
};
service = pageGlobal.Person.Services.Where(e => e.Identifier == Id).FirstOrDefault();
}