无法在Blazor中使用e.Value =“ value”设置输入值

问题描述

我有一个简单的input,类型为text

<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; }
}