如何将本地事件与剃刀页面中的文档绑定(Blazor服务器端应用程序不互操作文件)

时间:2020-02-25 04:52:15

标签: blazor blazor-server-side

如何将本地事件与剃刀页面中的文档绑定(Blazor服务器端应用程序不互操作文件)

<button @onmousemove="@OnMouseMove">Login</Button>

这是按钮元素中的本机事件绑定。

需要在文档

中绑定相同的本机事件

1 个答案:

答案 0 :(得分:0)

您可以通过JavaScript和JavaScript互操作性(JS interop)来实现。 您需要在前端订阅事件并调用.Net代码

document.addEventListener("mousemove", function () {
 DotNet.invokeMethodAsync('SoWebApplication (Assembly Name)', 'ReturnDataAsync (Method Name)')
  .then(data => {
        //This line appears in browser dev console.
        console.log(data + " from JS.");
  });
});

并创建用于调用的静态方法。来自文档:

首选异步版本以支持Blazor Server方案。 .NET方法必须是公共的,静态的,并具有[JSInvokable]属性。当前不支持调用开放通用方法。

using System;
using System.Threading.Tasks;
using Microsoft.JSInterop;

static public class Test
{
    [JSInvokable]
    public static Task<string> ReturnDataAsync()
    {
        //This line appears in server console.
        Console.WriteLine("Hello from server");
        return Task.FromResult("Hello");
    }
}