23.C#和JS互操作
23.1 C#调用JS,使用IJSRuntime
js代码:
<button onclick="javascript:alter("提示信息")">点我弹出提示</button>
C#调用JS:JsInteractive.razor页面代码,InvokeVoidAsync()方法和InvokeAsync
@Page "/jsinteractive"
<button @onclick="ShowAlter">点我弹出提示</button>
<button @onclick="Prompt">点我弹出框</button>
您输入的姓名是:@Value
@inject IJSRuntime JS
@code
{
string? Value{get;set;}
async Task ShowAlert()
{
await JS.InvokeVoidAsync("alert","提示信息");
}
async Task Prompt()
{
Value = await JS.InvokeAsync<string>("prompt","请输入姓名");
}
}
23.2 JS调用C#的方法一
- 1.要求C#方法必须是静态方法
- 2.必须在静态方法上打上[JSInvokable]特性标签
- 3.在js中使用静态对象DotNet,同步方法使用
DotNet.invokeMethod('C#程序集','方法名','参数1','参数2'...)
;异步方法使用DotNet.invokeMethodAsync('C#程序集','方法名','参数1','参数2'...)