c# - 调用 C# 函数 Blazor Jquery
问题描述
需要一些帮助排序错误添加了代码截图和代码返回的错误。尝试从 Jquery 调用 C# 函数并传递参数。
_主持人
function getElementSVG(e) {
var position = getPosition(e);
var circle = makeSVG('circle', { cx: position.pointx, cy: position.pointy, r: 0.02, stroke: 'black', 'stroke-width': 0.5, fill: 'black' });
document.getElementById(e.currentTarget.id).appendChild(circle);
DotNet.invokeMethodAsync('PeopleCounterWeb', 'AddPointToList', position.pointx, position.pointy).then(result => {
console.log(result);
});
return position;
}
function fnsuccesscallback(data) {
alert(data.d);
}
function fnerrorcallback(result) {
alert(result.statusText);
}
function makeSVG(tag, attrs) {
var el = document.createElementNS('http://www.w3.org/2000/svg', tag);
for (var k in attrs)
el.setAttribute(k, attrs[k]);
return el;
}
function getPosition(e) {
var rect = e.target.getBoundingClientRect();
var x = e.clientX - rect.left;
var y = e.clientY - rect.top;
var width = rect.width;
var height = rect.height;
var pointx = ((x / width) * 100).toFixed(2);
var pointy = ((y / height) * 100).toFixed(2);
return {
pointx,
pointy
}
};
MainMap.cshtml
[JSInvokable]
public string AddPointToList(string x, string y)
{
var alpha = x + "-" + y;
return "";
//Points.Add(obj[0], obj[1]);
}
解决方案
您试图在不传递对该实例的引用的情况下调用实例上的消息。如果没有实例,您只能调用静态方法。
您需要在 C# 中创建 DotNetReference 的实例并将其传递给 JS。
Blazor 大学有一节关于从 JS 调用 C# - https://blazor-university.com/javascript-interop/calling-dotnet-from-javascript/
推荐阅读
- flutter - 如何在颤振的主应用程序中使用本地化字符串
- mule - 什么是 Mule 4 中的相关 ID 以及如何在变量中的流程开始时设置它直到流程结束。什么是correlationID的数据类型
- c# - 如何让 Identity Server 忘记凭据 - WPF
- c# - 在后台任务中调试异常
- reactjs - Enzyme 模拟子组件的 onChange 事件
- python - 如何在 discord.py cogs 中创建别名?
- python - Deeplab 新数据集未找到新类
- c# - CLR 应用程序未启动
- python - 无法在python中修改文本+函数问题
- django - 按当前登录的用户过滤模型选择字段