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

迁移到.NET Core 3.1后NToastNotify未定义与资源404错误如何解决?

问题解决步骤

两个报错为直接关联关系:/_content/NToastNotify/toastr.js 404导致nToastNotify全局对象未完成初始化,所以触发第二个未定义错误,按以下步骤排查修复即可:

1. 删除重复的组件调用

你的_Layout布局页的head标签和body末尾各调用了一次@await Component.InvokeAsync("NToastNotify"),删除head标签内的那次调用,仅保留body末尾、所有JS引用之后的那次即可。

2. 关闭组件内置静态资源注入并修正路径

你已经自行在项目中托管了toastr的CSS和JS文件,不需要组件从嵌入资源加载对应文件,修改ConfigureServices中AddNToastNotifyToastr的配置:

.AddNToastNotifyToastr(new ToastrOptions
{
    ProgressBar = true,
    PositionClass = ToastPositions.BottomRight,
    TimeOut = (int)TimeSpan.FromSeconds(Configuration.GetValue<int>("Notifications:DefaultTimeoutSecs")).TotalMilliseconds,
    Title = string.Empty,
    TapToDismiss = true,
    NewestOnTop = true
}, new NToastNotifyOption()
{
    // 修正为你实际存放toastr资源的路径,原配置的/js/、/css/路径和实际引用路径不符
    ScriptSrc = "/lib/toastr/toastr.min.js",
    StyleHref = "/lib/toastr/toastr.min.css",
    // 新增这行配置,关闭嵌入资源加载,就不会再输出/_content路径的脚本标签
    DisableEmbeddedResources = true 
});

3. 验证本地静态文件存在

确认你的项目wwwroot/lib/toastr/目录下确实存在toastr.min.js和toastr.min.css两个文件,避免出现新的404错误。

4. 校验中间件顺序(可选)

你当前的中间件注册顺序是符合要求的:UseStaticFiles在UseNToastNotify之前,不需要调整。如果后续调整过中间件顺序,要保证静态文件中间件注册在NToastNotify中间件之前。

修改完成后清理浏览器缓存、重启项目即可解决报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:09:01