1. ホーム
  2. c#

[解決済み] Blazor onclick 関数に引数を渡すには?

2023-06-28 08:40:16

質問

ボタンを作りたいのですが 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>
}

どうすれば実現できるのでしょうか?

どのように解決するのですか?

lambdaで試してみてください。をバインドしていますね。 onclick を関数そのものではなく、関数の結果にバインドしています。

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