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

时间:2019-01-21 21:00:56

标签: c# blazor

我想使按钮onclick的功能需要一些输入。

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

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

但是由于某种原因,它会引发错误:

Argument "1": Cannot convert from void to string

稍后我想在for循环中创建这些按钮

@for (int i = 0; i < 10; i++)
{
    <button onclick="@test(i, 5 * i)">Check</button>
}

我该如何实现?

4 个答案:

答案 0 :(得分:16)

我尝试并成功

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

喜欢

@onclick="(() => GetDetail(item.UserId))

来自https://github.com/aspnet/AspNetCore/issues/15956的想法。

答案 1 :(得分:9)

尝试使用lambda。您会将onclick绑定到函数的结果,而不是函数本身。

@for (int i = 0; i < 10; i++)
{
    <button onclick="@(e => test(i, 5 * i))">Check</button>
}

答案 2 :(得分:0)

onclick上的Apperand指定它是C#函数:

@onclick =“ @(()=> test(i,5 * i))”

答案 3 :(得分:0)

<input type="button" @onclick="@(() => functionname(paramvalue))" class="....." value="DoSomething" />