You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor WASM页面加载时无法显示OnInitialized获取的API数据问题

Blazor WASM 页面加载时无法显示API数据的解决方法

问题核心在于你用了async void版本的OnInitialized生命周期方法——Blazor无法追踪这类异步方法的完成状态,所以当API请求完成、message赋值后,组件不会自动触发重新渲染。热重载时组件重新初始化,此时message已有值,因此能正常显示。

直接按以下方式修改即可解决:

  • 替换为Blazor官方推荐的OnInitializedAsync异步生命周期方法(返回Task),框架会自动在异步操作完成后触发组件重新渲染。
  • 可添加加载状态提示,避免页面加载时完全空白。

修改后的代码:

<p>@(message?.Name ?? "加载中...")</p>

@code {
    public MessageDocumentationDto? message;

    protected override async Task OnInitializedAsync()
    {
        try
        {
            message = await Http.GetFromJsonAsync<MessageDocumentationDto>("api/Documentation/ViewRecord");
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            // 可选:替换为友好的错误提示,避免程序崩溃
            // message = new MessageDocumentationDto { Name = "数据加载失败" };
        }
    }
}

额外提示:

  • 不要在异常处理中直接throw,否则会导致程序崩溃,建议替换为用户可见的错误提示。
  • 用??空合并运算符实现加载提示,能让用户直观感知加载状态,提升体验。

内容的提问来源于stack exchange,提问作者Bhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:35:26