tnblog
首页
视频
资源
登录

Blazor的c#调用JavaScript传参

7011人阅读 2021/12/13 14:07 总访问:458502 评论:0 收藏:0 手机
分类: ASP.NET
  1. 1、新建类库ExampleMethed和BlazorMerhed
  2. private string name = "张三";
  3. private string result = string.Empty;
  4. private BlazorMerhed merhed;
  5. private DotNetObjectReference<ExampleMethed> reference;
  6. private async Task TriggerMethod()
  7. {
  8.       //两张方法结果一样
  9.    //merhed = new BlazorMerhed(JSRuntime);
  10.    //result = await merhed.CallHelloHelperGetHelloMessage(name);
  11.     reference = DotNetObjectReference.Create(new ExampleMethed(name));
  12.     result = await JSRuntime.InvokeAsync<string>("TriggerMethod", reference);
  13. }
  14. public void Dispose()
  15. {
  16.    merhed?.Dispose();
  17. }
  18. public class BlazorMerhed : IDisposable
  19. {
  20.    private readonly IJSRuntime _JSRuntime;
  21.    private DotNetObjectReference<ExampleMethed> reference;
  22.    public BlazorMerhed(IJSRuntime JSRuntime)
  23.    {
  24.        _JSRuntime = JSRuntime;
  25.    }
  26.    public ValueTask<stringCallHelloHelperGetHelloMessage(string name)
  27.    {
  28.        reference = DotNetObjectReference.Create(new ExampleMethed(name));
  29.        var message = _JSRuntime.InvokeAsync<string>("TriggerMethod", reference);
  30.        return message;
  31.     }
  32.     public void Dispose()
  33.     {
  34.        reference?.Dispose();
  35.     }
  36. }
  37. public class ExampleMethed
  38. {
  39.     public string Name { getset; }
  40.     public ExampleMethed(string name)
  41.     {
  42.        Name = name;
  43.     }
  44.        [JSInvokable]
  45.        public string GetHelloMessage() => $"Hello, {Name}!";
  46.     }
  47. window.TriggerMethod = (dotNetHelper) => 
  48. {
  49.    return dotNetHelper.invokeMethodAsync('GetHelloMessage');
  50. };

评价
当你知道迷惑时,并不可怜,当你不知道迷惑时,才是最可怜的。
排名
11
文章
201
粉丝
10
评论
13
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
你必须要变强,才可以守护身边的人!