我绞尽脑汁试图让它工作,我可以从JS到Blazor获得同步的JS值,但异步不会被发送过来。
假设我有以下代码:
.剃刀
private async Task GetJSRemoteIP()
{
string remoteIP = await JSRunTime.InvokeAsync<string>("getIPadr");
}
.js
function getIPadr() {
return "works!"
}
然而,如果我将js更改为带return的异步函数,它永远不会被发送回blazor,如下所示:
.js
async function getIPadr() {
const response = await fetch("https://api.ipify.org?format=json");
const jsonData = await response.json();
return jsonData;
}
我需要做什么才能将async函数的值返回到blazor中?
1条答案
按热度按时间iqih9akk1#
你的代码看起来很好。但是,在返回JSON数据时似乎存在问题。假设JSON对象没有隐式地转换为字符串类型。
由于响应是JSON,因此您可以直接访问数据成员并返回它。
或者,您可以显式地将其转换为字符串并将其发送回服务器。
上面的代码需要在服务器端添加一个反序列化机制来从JSON中获取IP。