【发布时间】:2020-10-09 17:38:38
【问题描述】:
这是我的看法:
<form asp-action="SaveAssignments">
<input type="hidden" asp-for="@Model.CreatedUser" />
<div class="card m-5">
<div class="card-header">
<div class="container d-md-inline-flex justify-content-between">
<div class="form-group">
<h2><label asp-for="Stores" class="form-control-label"></label></h2>
<button data-toggle="dropdown" type="button" class="btn btn-lg btn-outline-secondary text-bold dropdown-toggle">@Model.Stores.FirstOrDefault(s => s.Value == Model.SelectedStoreId.ToString())?.Text<span class="caret"></span></button>
<div class="dropdown-menu">
@foreach (var item in Model.Stores)
{
<a class="dropdown-item" asp-controller="Web" asp-action="Assignments" asp-route-storeId="@item.Value" asp-route-groupId="@Model.SelectedGroupId">@item.Text</a>
}
</div>
</div>
<div class="form-group align-content-center">
<h2><label asp-for="Groups" class="form-control-label"></label></h2>
<button data-toggle="dropdown" type="button" class="btn btn-lg btn-outline-secondary text-bold dropdown-toggle">@Model.Groups.FirstOrDefault(s => s.Value == Model.SelectedGroupId.ToString())?.Text<span class="caret"></span></button>
<div class="dropdown-menu">
@foreach (var item in Model.Groups)
{
<a class="dropdown-item" asp-controller="Web" asp-action="Assignments" asp-route-storeId="@Model.SelectedStoreId" asp-route-groupId="@item.Value">@item.Text</a>
}
</div>
</div>
<div class="form-group align-self-end">
<button type="submit" class="btn btn-primary btn-lg"><i class="fa fa-save"></i> Save</button>
</div>
</div>
</div>
<div class="card-body">
<div class="row">
<div class="form-group col-md-5">
<h2><label asp-for="ListZoneFrom" class="form-control-label"></label></h2>
<select id="from" asp-for="ListZoneFrom" asp-items="Model.ListZoneFrom" size="15" class="form-control" style="width:100%"></select>
</div>
<div class="form-group col-md-5">
<h2><label asp-for="ListZoneTo" class="form-control-label"></label></h2>
<select id="to" asp-for="SelectedZoneTo" asp-items="Model.ListZoneTo" size="15" class="form-control" style="width:100%"></select>
</div>
</div>
</div>
</div>
</form>
这是我的模型:
public class AssignmentsViewModel
{
public AssignmentsViewModel()
{
Groups = new List<SelectListItem>();
ListZoneFrom = new List<SelectListItem>();
SelectedZoneTo = new List<int>();
ListZoneTo = new List<SelectListItem>();
}
public int SelectedStoreId { get; set; }
public int SelectedGroupId { get; set; }
public List<SelectListItem> Groups { get; set; }
[Display(Name = "From: ")]
public List<SelectListItem> ListZoneFrom { get; set; }
[Display(Name = "To: ")]
public List<SelectListItem> ListZoneTo { get; set; }
public List<int> SelectedZoneTo { get; set; }
public string CreatedUser { get; set; }
public IEnumerable<SelectListItem> Stores {get; set;}
}
当我提交表单 (HttpPost) 时,唯一绑定的参数是 CreatedUser,其余参数要么为 null,要么为 0。我的问题是如何将 List ListZoneTo 中的值绑定到 List SelectedZoneTo?每次我发布时,我都会在该列表中获得 0 个项目。我做错了什么?
<select id="to" asp-for="SelectedZoneTo" asp-items="Model.ListZoneTo" size="15" class="form-control" style="width:100%"></select>
谢谢
【问题讨论】:
-
这些列表中似乎没有任何内容。 (您是否包含完整代码?)“SelectList”类型用于填充传统选择标签的选项。 (
标签: asp.net asp.net-mvc asp.net-core model-view-controller