![](/img/trans.png)
[英]How to call a static JavaScript method from Blazor C# code
[英]It's possible mix Javascript and C# code in a DOM event in Blazor?
我正在嘗試在 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 隱式轉換為對象” ,所以如果我更改測試方法簽名只是為了返回 object
public object Test()
{
JSRuntime.InvokeVoidAsync("console.log", "Showing log from C#");
return null;
}
應用程序編譯,但一旦頁面加載,“Test()” function 會自動執行,如果我點擊按鈕,它只會執行 Javascript 代碼,而不是兩段代碼。
I know I should handle events in Blazor prefixing the event name with "@" symbol in order to call a C# method, and execute Javascript code there using the interop, but in that way, I can't use the default Javascript "event"我需要使用它,而不是 Blazor“事件”版本。
提前致謝!
你只能有 1 個 onclick 屬性,所以要么從 JS 調用 C## 方法,要么從 C# 調用 JS 代碼。 在這兩種情況下,您都需要互操作,不支持以您嘗試的方式組合它。
"Test()" function 自動執行
是的,在onclick="... @Test()"
中,它在頁面呈現時執行,而不是在單擊按鈕時執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.