【问题标题】:Read Javascript variable from .NET in Blazor Webassembly在 Blazor Webassembly 中从 .NET 读取 Javascript 变量
【发布时间】:2020-12-28 03:50:56
【问题描述】:

我是 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

【问题讨论】:

    标签: javascript .net blazor


    【解决方案1】:

    目前这是不可能的,因为IJsRuntime 只公开了调用 javascript 函数的方法。 Details here on Microsoft docs

    但是你可以写一个js函数并返回一个属性:

    var Namespace1 = {
        prop1: 42, 
        func1: function () {
            return prop1;
        }
    }
    

    【讨论】:

    • 感谢您提供的信息。因为它是一个带有很多属性的 js lib(不是我的代码)的项目,所以它不起作用。我将为此使用角度。
    • 您可以创建自己的 javascript,它可以具有可以访问您想要访问的 js 属性的函数。所以基本上blazor &gt; your js &gt; readonly js
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 2012-10-17
    • 2020-11-14
    • 2020-05-20
    • 1970-01-01
    • 2017-12-06
    • 2014-05-19
    • 2021-05-20
    相关资源
    最近更新 更多