Saltar al contenido

Ejecutar el método asíncrono al hacer clic en el botón en blazor

Ya no tienes que indagar más por todo internet ya que llegaste al sitio justo, tenemos la solución que buscas sin problemas.

Solución:

Tienes que llamar al Delete método correctamente y hacer que regrese Task en vez de void:



@functions 

    // ...

    async Task Delete(Guid personId)
    
        await this.PersonRepository.Delete(personId);
    

@WoIIe, 1. El propósito de usar una expresión lambda como valor para onclick attribute es para que pueda pasar un valor al método Delete. Si ya definió un objeto de persona en su código, no tiene que usar una expresión lambda. Solo haz esto: onclick = "@Delete"y acceda a person.Id desde el método Delete.

  1. ¿Ha hecho clic en el botón por segunda vez? Creo que este código: await this.PersonRepository.Delete(personId); se ejecutó, pero no ha visto ninguna respuesta en la GUI porque el uso de void, que no se recomienda, requiere que llame a StateHasChanged(); manualmente para volver a renderizar. Tenga en cuenta que StateHasChanged() ya se llamó automáticamente una vez cuando su método “finalizó”, pero como está regresando void y no Task, debe llamar a StateHasChanged() una vez más para ver los cambios. Pero no lo hagas. Vea la respuesta de DavidG sobre cómo codificar correctamente.

Así es también como puedes codificar:



@functions 

    Person person = new Person();
    //....
    async Task Delete()
    
        await this.PersonRepository.Delete(person.Id);
    

Más código según la solicitud…

 foreach(var person in people)
    
        
    

@functions 
  // Get a list of People.
  List People ;

protected override async Task OnParametersSetAsync()

    People = await this.PersonRepository.getAll();


async Task Delete(Guid personId)

     await this.PersonRepository.Delete(personId);


Nota: Si aún no has solucionado tus problemas, muestra todo tu código

Sección de Reseñas y Valoraciones

Finalizando este artículo puedes encontrar los informes de otros usuarios, tú asimismo tienes la libertad de mostrar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 3 Promedio: 4.7)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *