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" />