Blazor字符串输入绑定列表

时间:2019-10-26 21:39:03

标签: c# html blazor

我试图显示一个字符串列表,希望用户能够编辑该列表以对对象进行更改,但是在修改输入字段后查看列表时,尚未进行更改。

如何绑定字符串列表?

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

2 个答案:

答案 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();
    }
}