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 />
- 已在项目启动配置(Program.cs)中注册Blazored Toast服务:
- 确认视图模型已注册到DI容器
由于你在Razor页面中使用@inject注入PageViewModel,需要在Program.cs中注册该视图模型,示例:// 按需选择生命周期Scoped/Transient/Singleton builder.Services.AddScoped<PageViewModel>();
内容的提问来源于stack exchange,提问作者Renma
相关产品推荐
相关产品推荐

