【问题标题】:How to get data from multiple elements如何从多个元素中获取数据
【发布时间】:2020-05-23 14:58:59
【问题描述】:

我有下一个 ViewModel:

public class ChatCreationViewModel
    {
        public string ChatName { get; set; }
        public List<User> Friends { get; set; }
        public List<(string, bool)> Partcipants { get; set; }
    }

和下一个视图:

@model GalkaNet.ViewModels.ChatCreationViewModel

    <form method="post" asp-action="NewChat" asp-controller="Chat" enctype="multipart/form-data">
        <h2>Создание беседы</h2>
        <label>Chat name: </label> <input type="text" name="ChatName" placeholder="Name" value=""></p>
        <p><input type="submit" value="Create" /></p>
        @for(int i = 0; i < Model.Friends.Count; i++)
        {
    <div>
        <label>@Model.Friends[i].NickName</label>
        <p> @Html.EditorFor(Model => Model.Partcipants[i].Item2)</p>
    </div>
        }
    </form>
</div>

问题是:我想创建一个包含用户名和复选框的元素列表。提交表单后,我想将每个复选框中的值与用户的 id (在此复选框之前的名称前面)相结合,放入将要发送到服务器的视图模型的参与者列表中。我该怎么做?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-core razor


    【解决方案1】:

    创建这样的模型

    public string ChatName { get; set; }
    public List<UserModel > Friends { get; set; }
    

    您的用户模型属性(ID、用户名、isSelected) 从您的数据库中填写这些属性

    Id = friend.Id;
    UserName = friend.Name,
    isSelected = false
    

    你的观点

      @for (int i = 0; i < Model.Friends.Count; i++)
      {
       <div class="form-check m-1">
            <input type="hidden" asp-for="@Model.Friend[i].Id " />
            <input type="hidden" asp-for="@Model.Friend[i].Username" />
            <input asp-for="@Model.Friend[i].isSelected" class="form-check- 
           input" />
            <label class="form-check-label" asp- 
            for="@Model.Friend[i].isSelected">
            @Model.Friend[i].Username </label>
      </div>
      }
    

    【讨论】:

    • 这正是我想要的。谢谢。
    猜你喜欢
    • 2021-08-06
    • 2012-06-17
    • 2019-07-16
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 2021-08-27
    相关资源
    最近更新 更多