Blazor(客户机/wasm)JSInvoke“;值不能为空";错误

Blazor(客户机/wasm)JSInvoke“;值不能为空";错误,blazor,blazor-client-side,Blazor,Blazor Client Side,我尝试运行一个名为LoadJSorcsFile的javascript函数,该函数使用以下代码获取2个字符串参数: await JSRuntime.InvokeAsync<string>("loadJsOrCssFile", $"/brands/{_brand.BrandId}/brand{_brand.BrandId}_{_brand.CSSFileVersionNo}.css", "css"); wait JSRuntime.InvokeAsync(“loadjsorcsfile

我尝试运行一个名为LoadJSorcsFile的javascript函数,该函数使用以下代码获取2个字符串参数:

await JSRuntime.InvokeAsync<string>("loadJsOrCssFile", $"/brands/{_brand.BrandId}/brand{_brand.BrandId}_{_brand.CSSFileVersionNo}.css", "css");
wait JSRuntime.InvokeAsync(“loadjsorcsfile”,“$”/brands/{{u brand.BrandId}/brand{{u brand.BrandId}}{{u brand.CSSFileVersionNo}.css”,“css”);
但我得到一个错误(来自Chrome开发工具控制台):

blazor.webassembly.js:1 WASM:System.ArgumentNullException:值不能为null。
h、 printErr@blazor.webassembly.js:1
12:37:36.127 blazor.webassembly.js:1 WASM:参数名称:jsRuntime
h、 printErr@blazor.webassembly.js:1
12:37:36.127 blazor.webassembly.js:1 WASM:at Microsoft.JSInterop.JSRuntimeExtensions.InvokeAsync[TValue](Microsoft.JSInterop.IJSRuntime-jsRuntime-runtime,System.String标识符,System.Object[]args)位于:0

对不起,这没关系,现在我已经解决了。我是在课程的顶端做这件事的(这是一个普通的类,而不是在一个组件中):


如果我通过构造器中的DI获得JSRuntime,它就会起作用。

对于从google来到这里的其他用户,您必须以传统方式注入它

    public class MyClass
    {
        private readonly IJSRuntime _jSRuntime;

        public MyClass (IJSRuntime jSRuntime)
        {
            _jSRuntime = jSRuntime;
        }
     }

嗨,Paul,感谢您为我们提供最新的解决方案。这可能有助于包括正确的方法来完成它,而不仅仅是你做错了什么-帮助新手在未来使用blazor。
[Inject]
IJSRuntime JSRuntime { get; set; }
    public class MyClass
    {
        private readonly IJSRuntime _jSRuntime;

        public MyClass (IJSRuntime jSRuntime)
        {
            _jSRuntime = jSRuntime;
        }
     }