如何在 .razor.cs 文件后面注入 blazor 代码?以 IJSRuntime 为例

Kyl*_*yle 19 .net c# razor blazor blazor-server-side

在 Blazor 中使用普通的单页剃刀组件。我可以IJSRuntime在页面顶部像这样注入:

@inject IJSRuntime JSRuntime
Run Code Online (Sandbox Code Playgroud)

如果我为组件在 .razor.cs 文件后面创建了一个代码,我如何将类似的内容IJSRuntime注入到代码隐藏文件中?

Kyl*_*yle 24

在razor.cs文件后面的代码中,IJSRunTime或者其他人可以注入该[Inject]属性

public partial class BillingDashboard
{
    [Inject]
    IJSRuntime JSRuntime { get; set; }

    protected override async Task MyFunction()
    {
         await JSRuntime.InvokeVoidAsync("console.log('test')");
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 在“OnInitializedAsync”中调用 javascript 有有效的用例,例如,如果您只想第一次运行 JS,而不是在每次重新渲染时运行,并且不访问组件中的 DOM 元素,则此讨论也与该问题不是特别相关介绍如何在 razor 组件代码隐藏文件中注入某些内容。 (3认同)
  • 不要忘记“使用 Microsoft.AspNetCore.Components;”! (3认同)