我有一个托管有ASP.NET Core的Blazor WebAssembly应用,我的标记代码在Index.razor中,后面的代码在Index.razor.cs中。叫我老式。
我已经在razor和razor.cs之间建立了连接并且可以正常工作。找到我的C#例程,并且可以正常工作,除了那些调用。的例程。
例如,呼叫:
等待JSRuntime.InvokeVoidAsync(“ ShowAlert”,showAlertMessage);
当包含在后面的Index.razor.cs页上的例程中时,在识别InvokeVoidAsyc时发生编译错误。
我将主机C#例程移至标记Index.razor页面,所有内容都被识别并且可以正常工作。
然后,我的问题是,我应该能够在真正的后台页面中从C#例程调用a吗?您还有其他工作要做吗?我真的很想在razor.cs页面中保存所有我的背后代码。
或者是仅仅是从标记页面中托管的C#代码中调用像我这样的Blazor项目中的“钩子”?
Blazor让您在某种程度上混合搭配很酷。
您是否已注入
private readonly IJSRuntime jsRuntime;
protected override void OnInitialized(IJSRuntime jsRuntime)
{
this.jsRuntime = jsRuntime;
base.OnInitialized();
}
在后面的代码中,因为如果注入了标记页面,它将看不到注入的类。