在 Blazor 服务器中使用 NavigationManager NavigateTo 强制加载不会重新加载整个索引
Posted
技术标签:
【中文标题】在 Blazor 服务器中使用 NavigationManager NavigateTo 强制加载不会重新加载整个索引【英文标题】:Using NavigationManager NavigateTo forceload in Blazor server doesn't reload the entire index 【发布时间】:2021-10-08 19:26:31 【问题描述】:创建使用 MS 身份服务的 dotnet Blazor 服务器应用。当用户注册和登录时,应用程序会向他们发送一个 razor 组件,该组件会添加未保存在 MS Identity 中的其他用户信息 - 他们必须完成此操作才能继续。我在导航栏和索引页面重定向中都使用身份验证和角色。当我在用户表单(剃须刀组件)中运行它时......
navMgr.NavigateTo("/", forceLoad: true);
它甚至没有留下嵌入在 Index.razor 中的 razor 组件。
我想要的是这个表单完成将完全刷新为该用户的“/”(就像他们刚刚登录一样)。我是否必须注销用户才能执行此操作?
【问题讨论】:
【参考方案1】:这似乎解决了 index.razor 页面中的问题。在我的@if() 中使用过消费者并禁用。
protected override async Task OnParametersSetAsync()
authstate = await GetAuthenticationStateAsync.GetAuthenticationStateAsync();
authuser = authstate.User.Identity.Name;
if (authuser != null)
user = await userManager.FindByEmailAsync(authuser);
consumer = await userManager.IsInRoleAsync(user, "Consumer");
disabled = await userManager.IsInRoleAsync(user, "Disabled");
【讨论】:
以上是关于在 Blazor 服务器中使用 NavigationManager NavigateTo 强制加载不会重新加载整个索引的主要内容,如果未能解决你的问题,请参考以下文章
在 Blazor 中使用带有 AddDbContextFactory 的标识
.net Core 的实体框架 6。在 Blazor 服务器端
不变违规:元素类型在 createMaterialTopTabNavigator()/MaterialTopTabView 渲染方法中无效,React Native w/React Navigatio