C# 获取事件处理程序中的当前输入文本

C# 获取事件处理程序中的当前输入文本,c#,data-binding,blazor,C#,Data Binding,Blazor,我试图在用户单击按钮时将当前输入文本值传递给服务器。我尝试了下面的代码,但是YourName是null。为什么没有更新 <input type="text" bind="@YourName" maxlength="20" /> <button @onclick="() => { Message = ForecastService.Hello(YourName);}">Click</button> @code { string YourNam

我试图在用户单击按钮时将当前输入文本值传递给服务器。我尝试了下面的代码,但是
YourName
null
。为什么没有更新

<input type="text" bind="@YourName"  maxlength="20" />

<button @onclick="() => { Message = ForecastService.Hello(YourName);}">Click</button>

@code {
    string YourName;

点击
@代码{
把你的名字串起来;
我也试过了

<input type="text" bind-value-oninput="@YourName"  maxlength="20" />


,他们都没有工作


我刚刚创建了默认的Blazor应用程序项目并添加了上面的代码。我省略了
Hello()
方法,因为它对于这个问题并不重要。但无论如何,这里是的git存储库。更改在
FetchData.razor
;运行项目并转到“FetchData”.

您需要将
bind value
oninput
事件一起使用

<input 
    type="text" 
    @bind-value="YOUR_VARIABLE" 
    @bind-value:event="oninput" 
    maxlength="20" 
/>

您的问题是您使用的
@
错误


当您有blazor需要控制的属性时,您需要将其与
@
一起传递
bind
是blazor需要控制的一个变量,因此正确的值是
@bind
@bind value

您可以发布最小的可复制样本吗?也许
您的名字
应该是一个属性,而不是一个变量?.I在末尾添加了完整的源代码存储库。请刷新页面并查看更新的问题。将
YourName
更改为属性没有任何效果。我找到了答案。我尝试了
@bind
(不是
bind
)我认为我看到的例子已经过时了。不幸的是,这对我来说不起作用。绑定永远不会更新,也不会触发任何事件(oninput)。
<input 
    type="text" 
    @bind-value="YOUR_VARIABLE" 
    @bind-value:event="oninput" 
    maxlength="20" 
/>