我是Blazor Webassembly的新手,了解如何从.NET代码中调用javascript函数。我的问题是:是否也可以从.NET中读取和写入javascript变量
加载到页面的Javascript代码:
var Namespace1 = {
prop1: 42,
func1: function () {
return 42;
}
}
从.NET我可以调用函数Namespace1.func1:
@code {
//private int prop1 { get; set; } = 1;
private int ret1 { get; set; }
override protected async Task OnInitializedAsync() {
// Error: The value 'window.Namespace1.prop1' is not a function.
// ret1 = await JSRuntime.InvokeAsync<int>("Namespace1.prop1");
ret1 = await JSRuntime.InvokeAsync<int>("Namespace1.func1");
// return base.OnInitializedAsync();
}
}
是否可以从.NET 访问Namespace1.prop1
目前这是不可能的,因为IJsRuntime
只公开调用javascript函数的方法。有关Microsoft文档的详细信息
但是您可以编写一个js函数并返回一个属性:
var Namespace1 = {
prop1: 42,
func1: function () {
return prop1;
}
}