











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","请输入姓名");
}
}
DotNet.invokeMethod('C#程序集','方法名','参数1','参数2'...) ;异步方法使用DotNet.invokeMethodAsync('C#程序集','方法名','参数1','参数2'...)public class JsFunc
{
[JSInvokable]
public int Add()
{
return 1+5;
}
[JSInvokable]
public Task<int> AddAsync()
{
return Task.FromResult(1+5);
}
}
做转写,JsInteractive.razor
@Page "/js"
<button @onclick="Add">Add</button>
<button @onclick="AddAsync">AddAsync</button>
@Inject IJSRuntime JS
@code
{
async Task Add()
{
var js = DotNetObjectReference.Create(new JsFunc());
await JS.InvokeVoidAsync("add",js);
}
async Task AddAsync()
{
var js = DotNetObjectReference.Create(new JsFunc());
await JS.InvokeVoidAsync("addAsync",js);
}
}
js 调用方 app.js
function add(dotNet)
{
let result = dtonet.invikeMethod('Add');
console.log(result);
}
function addAsync(dotNet)
{
let result = dtonet.invikeMethodAsync('AddAsync');
console.log(result);
}
builder.Services.AddScoped(new HttpClient{BaseAddress="http://localhost:7008"});builder.Services.AddCors(options=>options.AddPolicy("any",builder=>builder.AllowAnyOrigin().AllowAnyHeader().AddlowAnyMethod()));app.UseCors("any");@inject HttpClient httpClientIEnumberable<WeatherForCast>? Data{get;set;} = [];
async Task GetDataAsync()
{
Data = awiat httpClient.GetFromJsonAsync<IEnumberable<WeatherForCast>>("weatherforecast");
}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。