Blazor JavaScript return 可以是一个数组吗?

Can Blazor JavaScript return an array?

我正在尝试在 javascript 中获取一些 html 元素位置并将其传回 C#,但我收到该错误:'System.Type' 实例的序列化和反序列化不是支持。

Blazor:

double[] jsResult =  await _jsRuntime.InvokeAsync<double[]>("getBottomOffset", _element);
double bottomOffset = jsResult[0];
double height = jsResult[1];
_resultsStyle = Options.Count * ResultHeight < bottomOffset ? $"top: 0; left: 0; " : $"bottom: -{height}px; left: 0;";

JS :

function getBottomOffset(el) {
const rect = el.getBoundingClientRect();
return [(window.innerHeight - rect.bottom), rect.height];

}

试试这个

public class data
    {
        public double bottomOffset { get; set; } 
        public double height { get; set; } 
    }

调用javascript函数

data obj = await _jsRuntime.InvokeAsync<data>("getBottomOffset", _element);

你的javascript函数

function getBottomOffset(el) {
    const rect = el.getBoundingClientRect();
    
    return { bottomOffset: (window.innerHeight - rect.bottom), height: rect.height };
}