问题描述
<input type="text" @oninput="Input_OnInput" />
如您所见,oninput
事件由Input_OnInput
方法处理。这是它的实现:
private void Input_OnInput(ChangeEventArgs e)
{
string inputValue = e.Value.ToString();
e.Value = inputValue + "ABC";
}
它所做的只是将三个字符附加到输入字符串,然后将新字符串分配给e.Value
属性。
但是,由于某些我无法理解的原因,这无法正常工作,并且新字符串未显示在用户界面的输入文本中。
顺便说一句,也许我应该提一下方法确实被调用了,而特定的行却被执行了,但是它似乎并没有按预期的那样工作。
如果使用的话,我正在使用Blazor服务器端托管模型。
解决方法
那不是您应该如何在Blazor中更新输入的内容,请查看
示例代码:https://docs.microsoft.com/en-us/aspnet/core/blazor/components/data-binding?view=aspnetcore-3.1
<p>
<input @bind="currentValue" /> Current value: @currentValue
</p>
<p>
<input @bind="CurrentValue" /> Current value: @CurrentValue
</p>
@code {
private string currentValue;
private string CurrentValue { get; set; }
}