Вы можете сделать это с помощью комбинации каскадных значений и EventCallback
.
Сначала создайте обратный вызов для вашего Test
.Для этого добавьте следующий код в свой MainLayout.razor.
EventCallback btn_clicked => EventCallback.Factory.Create(this, Test);
Или, чтобы убедиться, что вы создаете этот объект только один раз, вы можете использовать следующее:
EventCallback _btn_clicked = EventCallback.Empty;
EventCallback btn_clicked {
get {
if (_btn_clicked.Equals(EventCallback.Empty))
_btn_clicked = EventCallback.Factory.Create(this, Test);
return _btn_clicked;
}
}
Далее, убедитесь, что вы каскадно вызываете этот обратный вызов по своему телу.
<CascadingValue Value=btn_clicked >
@Body
</CascadingValue>
Теперь в своем коде Index.razor установите свойство:
[CascadingParameter]
public EventCallback btn_clicked { get; set; }