Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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# 在组件负载上加载数据_C#_.net_.net Core_Blazor_Blazor Server Side - Fatal编程技术网

C# 在组件负载上加载数据

C# 在组件负载上加载数据,c#,.net,.net-core,blazor,blazor-server-side,C#,.net,.net Core,Blazor,Blazor Server Side,人们会认为这是一项容易的任务。但是,如何在组件加载时调用服务方法而不触发两次呢 目前- protected override async Task OnInitializedAsync() { await Initialize(); } private async Task Initialize() { Video = await _VideoService.GetAsync(Id); } 现在这会被调用两次,对于相同的信息,两次访问数据库似乎不是一个好主意 我试着在下面做这

人们会认为这是一项容易的任务。但是,如何在组件加载时调用服务方法而不触发两次呢

目前-

protected override async Task OnInitializedAsync()
{
   await Initialize(); 
}

private async Task Initialize()
{
    Video = await _VideoService.GetAsync(Id);
}
现在这会被调用两次,对于相同的信息,两次访问数据库似乎不是一个好主意

我试着在下面做这个,但是每次渲染之前它都会抛出一个错误

protected override async Task OnAfterRenderAsync(bool firstRender)
{
  if(firstRender)
  { 
    await Initialize();
  }
}
初始化组件的生命周期方法执行两次:

  • 当组件以静态方式预渲染时
  • 在服务器连接建立之后
  • 通过design-check和本文的其他部分,可以找出在您的案例中加载数据的安全方法。也许是或者