C# Blazor如何将参数传递给onclick函数?

C# Blazor如何将参数传递给onclick函数?,c#,blazor,C#,Blazor,我想让按钮onclick函数接受一些输入 <button onclick="@test(123, 456)">Check</button> @functions { public void test(int a, int b) { Console.WriteLine(a + b); } } 我怎样才能做到这一点呢?用兰姆达试试。您将onclick绑定到函数的结果,而不是函数本身 @for (int i = 0; i < 1

我想让按钮
onclick
函数接受一些输入

<button onclick="@test(123, 456)">Check</button>

@functions
{
    public void test(int a, int b)
    {
        Console.WriteLine(a + b);
    }
}

我怎样才能做到这一点呢?

用兰姆达试试。您将
onclick
绑定到函数的结果,而不是函数本身

@for (int i = 0; i < 10; i++)
{
    var buttonNumber = i;
    <button @onclick="@(e => test(buttonNumber, 5 * buttonNumber))">Check</button>
}
(int i=0;i<10;i++) { var ButtonnNumber=i; 检查 }
在登录时单击
onclick
指定它是一个C函数:

@onclick = "@(() => test(i, 5*i))"
我试了一下,成功了

@onclick="(() => FunctionName(argument))"

从中获得灵感。



您的函数似乎需要返回类型,请尝试将void更改为string@DalTron我将void改为string并添加了“return a”-现在单击控制台上显示的按钮
ReferenceError:a不是define
,刷新页面后显示
579
,它是123+456,但为什么?它可以与lambda一起工作@对于(inti=0;i<10;i++){Check}@bcwhims完美!请写下来作为答案!相关:即使代码很好,解释也毫无意义。代码中没有符号(&)。我说的是“At”而不是“Amper”;)谢谢,我还发现Blazor文档在这方面很有帮助。我尝试过这个方法,但不断出现错误
无法将lambda表达式转换为类型“object”,因为它不是委托类型
。发生这种情况时,您需要使用
EventCallback.Factory
显式创建
EventCallback
。此处的文档:
@onclick="(() => FunctionName(argument))"
@onclick="(() => GetDetail(item.UserId))"
<input type="button" @onclick="@(() => functionname(paramvalue))" class="....." value="DoSomething" />