可以在 Blazor 的 DOM 事件中混合 Javascript 和 C# 代码吗?

问题描述 投票:0回答:2
javascript c# html blazor webassembly
2个回答
1
投票

只能有1个onclick属性,所以要么从JS调用C##方法,要么从C#调用JS代码。在这两种情况下,您都需要互操作,但不支持以您尝试的方式组合它。

“Test()”函数自动执行

是的,在

onclick="... @Test()"
中,它是在页面呈现时执行的,而不是在单击按钮时执行的。


0
投票

是的,您可以添加 javascript 事件侦听器,以便 JS 和 C# 都可以运行。

例如在 App.razor_Host.cshtml

<body>

的底部
    <script src="_framework/blazor.web.js"></script>
    <script>        
        document.addEventListener("click", function(e){
            if (e.target.id !== "testButton")return
            console.log("I caught ", arguments," in javascript!")
            })

您可能需要查找“如何将事件侦听器添加到动态生成的元素。”


内联,具有不同程度的黑客性,有时您可以使用“备用”javascript事件,其中几个事件几乎同时在同一元素上触发:

<input @onchanged="Test" onblur="javascript:…" />
<select @onchanged="Test" oninput="javascript:…">...</select>
<select @bind="Test" oninput="javascript:…">...</select>
<button @onclick="Test" onmouseup="javascript:…">...</button>
© www.soinside.com 2019 - 2024. All rights reserved.