0

我不明白渲染 Blazor 组件的正确方法是什么。

我在 C# ASP NET Core Web 应用程序中安装了剃须刀服务器。我正在尝试使用render-mode="ServerPrerendered"render-mode="Server"渲染组件

在这两种情况下,我都需要声明脚本_framework/blazor.server.js

  1. 如果我在所有其他脚本所在的主_Layout.cshtml上或在 body 标记的末尾声明脚本,则组件已死:事件和函数不起作用,无法动态更改组件;我可以在控制台上看到 Web 应用程序一启动就建立了连接。因此,当我导航到拥有组件的页面时,为时已晚。

  2. 相反,如果我在组件之后声明脚本,则一切正常。组件渲染良好,事件和函数工作正常。

所以现在我使用2。但是这样,每次我需要在新页面上使用一个组件时,我都会一次又一次地声明脚本,因此每次都会破坏并建立连接。

我认为这不是干净的解决方案。那么,渲染组件的正确方法是什么?

提前谢谢你,抱歉英语不好

4

1 回答 1

0

从最新版Visual Studio提供的“BlazorApp”模板来看,你把它放在了末尾Pages/_Hosts.cshtml

<body>
    <component type="typeof(App)" render-mode="ServerPrerendered" />

    <div id="blazor-error-ui">
        <environment include="Staging,Production">
            An error has occurred. This application may no longer respond until reloaded.
        </environment>
        <environment include="Development">
            An unhandled exception has occurred. See browser dev tools for details.
        </environment>
        <a href="" class="reload">Reload</a>
        <a class="dismiss"></a>
    </div>

    <script src="_framework/blazor.server.js"></script>
</body>

于 2020-12-01T16:01:54.923 回答