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

Blazor通过JS渲染组件报错:动态根组件未在应用中启用怎么解决?

解决方案

你遇到的报错是因为没有显式启用Blazor应用的动态根组件权限,按你使用的入口文件类型对应调整即可:

情况1:使用Razor入口页(_Host.cshtml/Layout文件)

找到页面中渲染Blazor根应用的<component>标签,添加allow-dynamic-root-components="true"属性:

<!-- 修改前 -->
<component type="typeof(App)" render-mode="ServerPrerendered" />

<!-- 修改后 -->
<component type="typeof(App)" render-mode="ServerPrerendered" allow-dynamic-root-components="true" />

情况2:使用纯静态HTML作为入口

修改Blazor脚本的加载逻辑,关闭自动启动后手动初始化时开启动态根组件支持:

<!-- 关闭默认自动启动 -->
<script src="/_framework/blazor.server.js" autostart="false"></script>
<div id="counter"></div>

<script>
    async function ready() {
        // 手动启动Blazor并启用动态根组件
        await Blazor.start({
            rootComponents: true
        });
        let containerElement = document.getElementById('counter');
        await Blazor.rootComponents.add(containerElement, 'counter', { incrementAmount: 10 });
    }
    document.addEventListener("DOMContentLoaded", ready);
</script>

额外验证项

确保你的Counter组件中已定义对应接收参数:

public partial class Counter
{
    [Parameter]
    public int IncrementAmount { get; set; }
}

修改完成后重新编译启动即可解决报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:18:03