Blazor JavaScript可以返回数组吗



我试图在javascript中获取一些html元素位置,并将其传递回C#,但我得到了错误:"System"的序列化和反序列化。不支持"类型"实例。

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 };
}

最新更新