Search code examples
c#blazor.net-5blazor-webassemblyblazor-client-side

Blazor Wasm - cannot convert from 'method group' to 'EventCallback'


I have a simple Blazor Server app that works ok.

I'm trying to create an equivalent app using Blazor WebAssembly with dotnet 5.

In the working app, I have a razor component that enables the user to upload files using the BlazorFileUploader nuget package

Markup:

<InputFile multiple OnChange="HandleFileSelected"/>

Code behind:

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

When I try to compile the wasm app, I get the following error

CS1503 Argument 2: cannot convert from 'method group' to 'EventCallback'

error image

Any ideas what I'm doing wrong?


Solution

  • Thanks to Connor and Jonas for the answers. The cause of the problem was that the old Blazor Server app from was built using .Net Core 3.1. This does not contain a "InputFile" component in the Microsoft.AspNetCore.Components.Forms Namespace. This explains why I'd resorted to the 3rd party "BlazorFileUploader" nuget package.

    When building the new Blazor WebAssembly app, I'd chosen dotnet 5. The problem was, the markup was now resolving "InputFile" to the Microsoft.AspNetCore.Components.Forms Namespace rather than the BlazorFileUploader namespace.

    So, I could fix in one of two ways:

    • Fully qualify the markup to <BlazorFileUploader.InputFile
    • Remove the 3rd party nuget package and refactor the code to make use of the InputFile component now available in the dotnet5 version of the Microsoft namespace

    I decided to go with the seconds of the two options.