将箭头函数中的参数传递给控件

Pass args in an arrow function to a control

我有一个子组件,其方法有一个参数。我可以使用整数作为参数或参数来调用该方法。但不能直接作为引号内的字符串值。

下面是我的有效代码...

<SampleAlertButton @ref=alertSystem></SampleAlertButton>

<button class="btn btn-success" @onclick="() => alertSystem.AlertSuccess(message)">Show Successful Alert 2.0</button>

@code{
    private SampleAlertButton alertSystem;

    private string message="Success Message from Code!";
}

以下是我希望能够执行的操作,但无法执行,我收到一条错误消息,提示缺少右括号。

<SampleAlertButton @ref=alertSystem></SampleAlertButton>

<button class="btn btn-success" @onclick="() => alertSystem.AlertSuccess("My Inline Message")">Show Successful Alert 2.0</button>

@code{
    private SampleAlertButton alertSystem;
}

为什么最后一个不起作用,我该如何解决?

使用此语法解决您面临的问题

<button class="btn btn-success" @onclick=@(() => alertSystem.AlertSuccess("My Inline Message"))>Show Successful Alert 2.0</button>

您需要 @ 符号来切换到 C# 和 lambda 表达式周围的一组括号:

"@(() => alertSystem.AlertSuccess("My Inline Message"))"

试试这个: