Necesito enviar desde JS a .NET tipo bool al hacer clic en cualquier parte del sitio, a excepción de las clases necesarias, para que el div se cierre dentro de la instrucción @if.
Copié información de aquí . ¿Cómo llamo a un método C# con parámetros de JavaScript en Blazor WebAssembly? , pero no me ayudó mucho con mi problema debido a la experiencia insuficiente con JSInterop.
En el script C#, el menú se abre sin dificultades, solo hubo problemas con JS. Por eso necesito ayuda. (Por supuesto, puedo eliminar @if y cerrar y abrir tareas para todas las clases, pero me parece que esto es una "muleta")
¡Gracias por las respuestas!
HTML:
<button @onclick="ToggleMenu"> @if(!_collapseNavMenu) { Something }C#:
public static bool _collapseNavMenu { get; set; } private void ToggleMenu() { _collapseNavMenu = !_collapseNavMenu; } [JSInvokable] public static void CheckBool(bool check) { _collapseNavMenu = check; } private async Task OnBtn() { await js.InvokeAsync<object>("TestJs"); }JS:
var jsCheck = true; window.onclick = function(event) { var dropdowns = document.getElementsByClassName("header__buttons"); var i; if (!event.target.matches('.js-close')) { if (jsCheck === true) { function TestJs() { var check = true; DotNet.invokeMethod('Heaven', 'CheckBool', check); } TestJs();