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"
/>