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'...)