Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

Confusion About .NET to JavaScript Interoperability in Blazor - Method Call Sequence

$
0
0

I'm working on a Blazor project where I need to call a .NET method from JavaScript, but I'm encountering some confusion with the sequence of method calls. Here’s a simplified version of my code:

@page "/call-dotnet-2"@implements IDisposable@inject IJSRuntime JS<PageTitle>Call .NET 2</PageTitle><h1>Call .NET Example 2</h1><p><label>        Name: <input @bind="name" /></label></p><p><button @onclick="TriggerDotNetInstanceMethod">        Trigger .NET instance method</button></p><p>    @result</p>@code {    private string? name;    private string? result;    private DotNetObjectReference<CallDotnet2>? objRef;    protected override void OnInitialized()    {        objRef = DotNetObjectReference.Create(this);    }    public async Task TriggerDotNetInstanceMethod()    {        result = await JS.InvokeAsync<string>("sayHello1", objRef);    }    [JSInvokable]    public string GetHelloMessage() => $"Hello, {name}!";    public void Dispose() => objRef?.Dispose();}

Javascript code:

<script>  window.sayHello1 = (dotNetHelper) => {    return dotNetHelper.invokeMethodAsync('GetHelloMessage');  };</script>

I need to call a .NET method from the browser using JavaScript (for example, via the browser console or an event handler of a JavaScript slider library). However, my current implementation shows that the call is being made from .NET to JavaScript and then back to .NET (.NET -> JavaScript -> .NET), which isn't what I intend.


Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>