Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在blazor中刷新页面重置值后重新设置?_C#_.net Core_Blazor_Blazor Server Side_Session Storage - Fatal编程技术网

C# 如何在blazor中刷新页面重置值后重新设置?

C# 如何在blazor中刷新页面重置值后重新设置?,c#,.net-core,blazor,blazor-server-side,session-storage,C#,.net Core,Blazor,Blazor Server Side,Session Storage,当用户进入ISessionStorageService正常工作后,我想在仪表板页面中获得当前使用的登录名,仪表板在布局页面中获得当前用户登录名的布局获取会话存储值 版面页 注意:用户登录并在页面之间切换可以正常工作,但当我需要刷新页面时,会出现错误 InvalidOperationException:此时无法发出JavaScript互操作调用。这是因为组件正在进行静态渲染。启用预渲染时,只能在OnAfterRenderAsync生命周期方法期间执行JavaScript互操作调用。 由于使用预呈现

当用户进入
ISessionStorageService
正常工作后,我想在仪表板页面中获得当前使用的登录名,仪表板在布局页面中获得当前用户登录名的布局获取
会话存储

版面页 注意:用户登录并在页面之间切换可以正常工作,但当我需要刷新页面时,会出现错误

InvalidOperationException:此时无法发出JavaScript互操作调用。这是因为组件正在进行静态渲染。启用预渲染时,只能在OnAfterRenderAsync生命周期方法期间执行JavaScript互操作调用。


由于使用预呈现,因此在执行此过程时不能调用JavaScript方法。而是设置对UpdateUserInfo方法的调用 在OnAfterRender(异步)对中,如下所示:

protected override async Task OnAfterRenderAsync(bool firstRender)
{
       if( firstRender )
       {
           await UpdateUserInfo();
           InvokeAsync( () => StateHasChanged());

        }
}

希望这有帮助…

您不能在该事件上执行js互操作,请像错误中提到的那样尝试。您的意思是调用“OnAfterRenderAsync”?当我在AfterRenderAsync上调用
OnAfterRenderAsync
时,userInfo是空的,但是
OnAfterRenderAsync
字段未更新这是另一个问题,与第一个问题无关。我想你需要重新提交你的页面。用法:InvokeAsync(()=>StateHasChanged());
await SessionStorage.SetItemAsync("LoginUser", loginUser);
protected override async Task OnAfterRenderAsync(bool firstRender)
{
       if( firstRender )
       {
           await UpdateUserInfo();
           InvokeAsync( () => StateHasChanged());

        }
}