我有下一个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(此复选框的名称在其前面)组合在一起,放入要进入服务器的我的视图模型的“参与者”列表中。我该怎么办?
答案 0 :(得分:0)
创建这样的模型
public string ChatName { get; set; }
public List<UserModel > Friends { get; set; }
您的用户模型属性(ID,用户名,已选择) 从您的数据库中填充这些属性
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>
}