Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

213
Vistas
Blazor ejecuta la función C# y JS en un solo botón al hacer clic en un evento

Tengo un botón que ejecuta una función JS:

 <button class="btn-orange btn" onclick="expand(this.closest('.profile'))">JavaScript</button>

Y un botón, que ejecuta C# y cambia de ícono dependiendo de un bool:

 <button class="btn-orange btn" @onclick="@(() => { if (tempBool) { tempBool = !tempBool; } else { tempBool = true; } })"> <i class="fa @(tempBool ? "fa-compress" : "fa-expand")" aria-hidden="true"></i> </button>

¿Cómo puedo combinarlos?

Lo probé con el evento OnClientClick , con JsRuntime.InvokeVoidAsync("expand(this.closest(.profile))"); , o colocando ambos en el evento onclick.

¿Cómo puedo ejecutar una función de JavaScript y C# en un evento de botón al hacer clic?

Mi código JavaScript que trato de ejecutar

EventPageExpandable.js:

 function expand(card) { card.classList.toggle('profile--expanded'); // If card is not expanded after toggle, add 'unexpanded' class if (!card.classList.contains('profile--expanded')) card.classList.toggle('profile--unexpanded'); // Else if card is expanded after toggle and still contains 'unexpanded' class, remove 'unexpanded' else if (card.classList.contains('profile--expanded') && card.classList.contains('profile--unexpanded')) card.classList.toggle('profile--unexpanded'); }

Cómo traté de usar JsRuntime:

 await JsRuntime.InvokeVoidAsync("EventPageExpandable.expand", "this.closest('.profile')");

¿O así? Pero ambos no funcionan.

 await JsRuntime.InvokeVoidAsync("expand", "this.closest('.profile')");```
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Inyecte el JSRuntime:

 @inject IJSRuntime JsRuntime

Enlace el evento onclick del botón:

 <button @onclick=ButtonClicked>Test</button>

y ejecuta la función JavaScript:

 private async Task ButtonClicked() { Console.WriteLine("From C#"); await JsRuntime.InvokeVoidAsync("console.log", "From js"); }

Al invocar funciones JS, pase el nombre de la función como primer argumento seguido de todos los parámetros

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda