Я пытался выяснить, как, если это возможно, и как передать метод с главной страницы в компонент в Blazor.
У меня есть простая страница бритвы, которая содержит компонент с кнопкой,Я хочу передать метод onclick со страницы бритвы кнопке в компоненте
Примечание: мне не нужен этот метод для возврата чего-либо void, это хорошо.Мне просто нужно иметь возможность вызывать метод с главной страницы в кнопке на компоненте.Я добавил здесь только как предположение, так как он жаловался на T
Page
@page "/test"
@using Testing.Client.Model;
@using System.Threading;
<TestMethodPassing ExternalMethod="@btnClick"></TestMethodPassing>
@code {
public Action<int> btnClick(){ return 1;}
}
Модель для компонента
public class TestingMethodPassingModel : ComponentBase
{
[Parameter]
protected Action<int> ExternalMethod { get; set; }
}
component
@inherits TestingMethodPassingModel;
@using testing.Client.Model;
@using System.Threading;
<button class="btn btn-primary" @onclick="@ExternalMethod" autofocus>External button</button>
@code {
}
Ошибки
Приведенный выше код дает мне следующую ошибку
Не дает перегрузки для 'btnClick' соответствует делегату 'Действие'
Я пыталсятакже выполнить тип T, и это не удалось, так как Blazor по какой-то причине не может найти ссылку для типа T
Примечание по обновлению
Рабочий пример, объединенный из ответов. PassingMethodToComponent