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.
- ¿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.