Я пытаюсь добиться следующего в Blazor WebAssembly; Мне нужно иметь возможность прослушивать событие в компоненте и использовать как Javscript, так и код C# следующим образом:
<button onclick="console.log('Showing event from Js: ' + event); @Test()">Test</button>
@code {
public void Test()
{
JSRuntime.InvokeVoidAsync("console.log", "Showing log from C#");
}
}
Первая проблема заключается в том, что я получаю сообщение об ошибке " не может неявно преобразовать тип void в объект "", поэтому, если я изменю подпись метода Test только для возврата объекта
public object Test()
{
JSRuntime.InvokeVoidAsync("console.log", "Showing log from C#");
return null;
}
Приложение компилируется, но после загрузки страницы "Test ()" функция выполняется автоматически, и если я нажму кнопку, она просто выполнит код Javascript, а не оба фрагмента кода.
Я знаю, что должен обрабатывать события в Blazor, добавляя к имени события префикс «@» символ, чтобы вызвать метод C#, и выполнить там код Javascript с помощью взаимодействия, но таким образом я не могу использовать «событие» по умолчанию Javascript, которое мне нужно использовать, вместо Blazor "событийная" версия.
Заранее спасибо!