繁体   English   中英

Javascript 在使用 Blazor WASM 预渲染时不起作用

[英]Javascript not working when using Blazor WASM prerendering

我想用我的 Blazor WASM 托管应用程序实现预渲染,但应用程序不会离开“预渲染”模式。 至少在任何组件中都不会调用方法“onafterrender”。 此外,我的 javascript 函数/脚本均无效。

我按照说明进行操作

我尝试在 cshtml 文件和 programm.cs 中处理脚本的顺序和删除,但没有任何效果

我遵循了Prerendering Configuration 我看不出有什么问题。 我可以在 Index.razor -> OnAfterRenderAsync() 上调用 javascript 方法

_主机.cshtml:

@page "/"
@using BlazorApp7HostedPrerenderingTest.Client
@using Microsoft.AspNetCore.Components.Web
@namespace BlazorApp7HostedPrerenderingTest.Server.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <base href="~/" />
    <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
    <link href="css/app.css" rel="stylesheet" />
    <link href="BlazorApp7HostedPrerenderingTest.Client.styles.css" rel="stylesheet" />
    <link rel="icon" type="image/png" href="favicon.png"/>
    <component type="typeof(HeadOutlet)" render-mode="WebAssemblyPrerendered" />
</head>
<body>
    <component type="typeof(App)" render-mode="WebAssemblyPrerendered" />

    <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.webassembly.js"></script>
    <script src="js/app.js"></script>
</body>
</html>

索引.razor:

@page "/"

<PageTitle>Index</PageTitle>

<h1>Hello, world!</h1>

Welcome to your new app.

<SurveyPrompt Title="How is Blazor working for you?" />

@code{
    [Inject] public IJSRuntime JS { get; set; }

    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        await base.OnAfterRenderAsync(firstRender);

        await JS.InvokeVoidAsync("hello", "Vikram Reddy");
    }
}

截屏:

调用 JS OnAfterRenderAsync

已创建示例 GitHUb 项目。 请检查 链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM