Blazor:如何将文本框的输入作为参数传递给函数

Blazor: how to pass input from a textbox to a function as argument

我正在尝试使用 blazor 向用户显示一个文本框,然后使用用户的输入调用函数 Input。此代码取自本文档的“Lambda 表达式”部分:https://docs.microsoft.com/en-us/aspnet/core/blazor/components/event-handling?view=aspnetcore-6.0

<div class="input-group">
    <input class="form-control" @onchange="() => Input(path)" />
</div>

@code{
string path;
private async Task Input(string path)
{
    Console.log(path);
}
}

此代码将空值传递给输入。

<div class="input-group">
    <input class="form-control" @onchange="path => Input(path)" />
</div>

@code{
string path;
private async Task Input(string path)
{
    Console.log(path);
}
}

此代码给出“无法从 Microsoft.AspNetCore.Components.ChangeEventArgs 转换为字符串”

<div class="input-group">
    <input class="form-control" @onchange="path.ToString() => Input(path)" />
</div>

@code{
string path;
private async Task Input(string path)
{
    Console.log(path);
}
}

这给出了“预期的语法错误”。

这个有效:

<div class="input-group">
    <input class="form-control" @onchange="@Input" />
</div>


    private async Task Input(Microsoft.AspNetCore.Components.ChangeEventArgs patharg)
    {
        path = (string)patharg.Value;
        Console.log(path);
    }