我试图显示一个字符串列表,希望用户能够编辑该列表以对对象进行更改,但是在修改输入字段后查看列表时,尚未进行更改。
如何绑定字符串列表?
@foreach (var message in UserMessageService.GetSomeData())
{
<tr>
<td><input type="text" bind="@message.Username" value="@message.Username" onblur="SaveMessages"/></td>
<td><input type="text" bind="@message.Message" value="@message.Message" onblur="SaveMessages"/></td>
</tr>
}
答案 0 :(得分:3)
使用合适的Blazor语法:
<input
type="text" @bind="@message.Message"/>
如果需要在模糊条件下执行功能:
<input value="@message.Message"
@onchange="@((ChangeEventArgs __e) =>
{ message.Message = __e.Value.ToString());
SaveMessages(); })" />
更多信息:https://docs.microsoft.com/en-us/aspnet/core/blazor/components?view=aspnetcore-3.0#data-binding
答案 1 :(得分:0)
我的错误很严重,问题不在于我的语法。我犯了一个错误,那就是绑定到我的服务而不是本地变量,所以当我离开焦点时,它无法更新,只能从服务中获取
我只是在下面添加了本地变量
@foreach (var message in dataVariable)
{
<tr>
<td><input type="text" @bind="message.Username" /></td>
<td><input type="text" @bind="message.Message" /></td>
</tr>
}
@code {
private List<someData> dataVariable;
protected override void OnInitialized()
{
TableSeats = UserMessageService.GetSomeData();
}
}