我有一个侧边菜单中的链接,像这样(Blazor Server):
<NotAuthorized>
<li class="nav-item px-3">
<NavLink class="nav-link" href="@($"LoginIDP?redirectUri=
{NavigationManager.Uri}")">
Login
</NavLink>
</li>
</NotAuthorized>
简单来说,我想让
redirectUri={NavigationManager.Uri}
这部分在用户所在的每个页面/组件中被更新为当前URI,以便无论用户在哪个页面/组件点击登录链接,都会将正确的redirectUri
传递到登录页面。但实际上,当用户在页面上点击其他
<NavLink>
时,浏览器地址栏中的URI会发生变化,页面内容也会发生变化,但NavigationManager.Uri
除非我刷新页面,否则保持不变。这是设计如此吗?我该如何获得真正的当前URI,而不必更改每个链接以进行某些事件调用以强制更新?
NavigationManager.LocationChanged
事件并调用StateHasChanged
,这将重新渲染父组件(在我的情况下是NavMenu)以及子组件。你的代码仍需要StateHasChanged
才能工作。currentLocation
是不必要的,因为StateHasChanged
将重新渲染NavigationManager.Uri
。 - thankyoussd