相关疑难解决方法(0)

当 API 调用完成时,如何从 .RAZOR 主页面内的所有子组件触发/刷新我的 .RAZOR 主页面?

我正在开发一个允许用户搜索我们的数据库的应用程序。当用户输入搜索词时,应用程序会访问 API 端点并返回数据。然后我显示数据。

当 API 返回数据时,我有一个范围服务:

services.AddScoped<AppState>();
Run Code Online (Sandbox Code Playgroud)

这使得每个返回的数据集可以在应用程序的所有组件中使用。

页面加载后SearchResults.razor,它就会从我的范围服务中获取结果,然后绘制页面的其余部分。

我需要一个“加载”微调器来放置数据,直到 API 返回数据,这可能需要很长时间,具体取决于搜索的数据量。

我的问题是,我无法弄清楚使用什么作为真/假“触发器”来了解是否显示数据或加载旋转器,或者在 API 向我发送数据后如何刷新页面。

我下面的内容仅适用于第一次初始搜索(从我的Index.razor页面),但不适用于任何包含的“过滤器”组件。

搜索结果.razor:

@page "/searchresults"
@layout PageTopComponents

<Header.razor></Header.razor>

<LeftMenu.razor>

    <FilterRazorComponent01.razor></FilterRazorComponent01.razor>

    <FilterRazorComponent02.razor></FilterRazorComponent02.razor>

    <FilterRazorComponent03.razor></FilterRazorComponent03.razor>

    <FilterRazorComponent04.razor></FilterRazorComponent04.razor>

</LeftMenu.razor>

<MainContentComponent.razor>

    // CONTENT HERE SHOULD BE VISIBLE WHEN DATA HAS ARRIVED, OTHERWISE IT SHOULD SHOW A "WAITING" SPINNER
    @if(API_Data_Received != null && API_Data_Received.count > 0){
        foreach(){
            // API Retrieved Data Here
        }
    } else {
        // Loading Spinner
    }

    <ContinueSearch.razor></ContinueSearch.razor>

    <Paginator.razor @ref="PaginatorComponentReference">

        <ChildContent>

            // THIS IS WHERE I …
Run Code Online (Sandbox Code Playgroud)

c# asp.net razor blazor

6
推荐指数
1
解决办法
4796
查看次数

标签 统计

asp.net ×1

blazor ×1

c# ×1

razor ×1