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

Blazored Toast从视图模型调用无响应无报错问题求助

解决方案

按优先级排查以下问题即可修复:

  • 修正视图模型构造函数的错误
    你给出的PageViewModel代码存在两处错误:一是构造函数参数名是toast,赋值时误用了不存在的toastService变量;二是不需要将注入的IToastService接口强转为具体的ToastService实现类,强转失败会导致_toastService为空,调用方法自然无响应也不会抛出异常(如果空值校验逻辑被跳过的话)。
    修正后的PageViewModel.cs代码如下:
    private Blazored.Toast.Services.IToastService _toastService;
    
    public PageViewModel(IToastService toast){
        this._toastService = toast;
    }
    
    public void Apply(){
        this._toastService.ShowSuccess("Here's a toast!");
        // 你的业务判断逻辑
        if (/* 条件1 */)
        {
            this._toastService.ShowSuccess("Condition 1");
        }
        else
        {
            this._toastService.ShowWarning("Condition 2");
        }
    }
    
  • 确认基础配置完整
    • 已在项目启动配置(Program.cs)中注册Blazored Toast服务:
      builder.Services.AddBlazoredToast();
      
    • 已在全局布局组件(通常为MainLayout.razor)中添加Toast渲染节点,没有这个节点消息无法渲染到页面:
      <BlazoredToast />
      
  • 确认视图模型已注册到DI容器
    由于你在Razor页面中使用@inject注入PageViewModel,需要在Program.cs中注册该视图模型,示例:
    // 按需选择生命周期Scoped/Transient/Singleton
    builder.Services.AddScoped<PageViewModel>();
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:48:00