首页 > 解决方案 > Blazor 如何将参数传递给 onclick 函数?

问题描述

我想制作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>
}

我怎样才能做到这一点?

标签: c#blazor

解决方案


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

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

推荐阅读