Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.2K
Visualizações
Blazor Wasm: no se puede convertir de 'grupo de métodos' a 'EventCallback'

Tengo una aplicación Blazor Server simple que funciona bien.

Estoy tratando de crear una aplicación equivalente usando Blazor WebAssembly con dotnet 5.

En la aplicación de trabajo, tengo un componente razor que permite al usuario cargar archivos usando el paquete nuget BlazorFileUploader

Margen:

 <InputFile multiple OnChange="HandleFileSelected"/>

Código detrás:

 public async Task HandleFileSelected(IFileListEntry[] files) { if (!ValidateFiles(files, out _errorMsg)) { return; } etc...

Cuando intento compilar la aplicación wasm, aparece el siguiente error

CS1503 Argumento 2: no se puede convertir de 'grupo de métodos' a 'EventCallback'

imagen de error

¿Alguna idea de lo que estoy haciendo mal?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

No creo que OnChange eventcallback admita un parámetro de tipo IFileListEntry[]

Intenta cambiar tu código detrás a:

 public async Task HandleFileSelected(InputFileChangeEventArgs e) { var files = e.GetMultipleFiles(); }
over 4 years ago · Santiago Trujillo Relatório

0

Jonas tiene razón; su método debe aceptar InputFileChangeEventArgs en lugar de IFileListEntry[] . Si pasa el cursor sobre OnChange en Visual Studio 2019, debería ver algo como esto: ingrese la descripción de la imagen aquí

El controlador de eventos espera un delegate EventCallback que pueda aceptar hasta 1 parámetro de tipo InputFileChangeEventArgs . Piense en un delegate como una interfaz de método: su declaración de IFileListEntry[] no coincide con la interfaz, por lo que obtiene un error.

Si inspecciona InputFileChangeEventArgs , puede ver cómo obtener los archivos:

 public async Task HandleFileSelected(InputFileChangeEventArgs args) { IReadOnlyList<Microsoft.AspNetCore.Components.Forms.IBrowserFile> files = args.GetMultipleFiles(args.FileCount); // ...
over 4 years ago · Santiago Trujillo Relatório

0

Gracias a Connor y Jonas por las respuestas. La causa del problema fue que la antigua aplicación Blazor Server se creó con .Net Core 3.1. Esto no contiene un componente "InputFile" en el espacio de nombres Microsoft.AspNetCore.Components.Forms. Esto explica por qué recurrí al paquete nuget "BlazorFileUploader" de terceros.

Al compilar la nueva aplicación Blazor WebAssembly, elegí dotnet 5. El problema era que el marcado ahora resolvía "InputFile" en el espacio de nombres Microsoft.AspNetCore.Components.Forms en lugar del espacio de nombres BlazorFileUploader.

Entonces, podría arreglarlo de una de dos maneras:

  • Califique completamente el marcado a <BlazorFileUploader.InputFile
  • Elimine el paquete nuget de terceros y refactorice el código para utilizar el componente InputFile ahora disponible en la versión dotnet5 del espacio de nombres de Microsoft

Decidí ir con los segundos de las dos opciones.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda