没有类型为'IEnumerable'密钥为'Clients
本文关键字:密钥 Clients SelectListItem 类型 IEnumerable | 更新日期: 2023-09-27 18:06:32
我有一个变量,我填充记录从我的数据库。然后,我将这个列表显示在视图上作为一个下拉框。然而,一旦到达下拉点,它就失败了。
控制器:
public ActionResult Review() {
var reviews = reviewRepo.GetAllReviews();
var clients = clientRepo.Clients();
List<SelectListItem> items = new SelectList(clients, "ClientID", "ClientName").ToList();
items.Insert(0, (new SelectListItem { Text = "Default", Value = "0" }));
ViewBag.ListOfClients = items;
IEnumerable<AdminReviewViewModel> model = reviews.Select(s => new AdminReviewViewModel() {
ClientID = s.ClientID,
ReviewID = s.ReviewID,
ReviewName = s.ReviewName,
ReviewPeriodID = s.ReviewPeriodID,
ReviewPeriodName = s.ReviewPeriod
});
return View(model);
}
视图:
@using (Html.BeginForm("Review", "UserAdmin", FormMethod.Post)) {
@Html.DropDownList("Clients", ViewBag.ListOfClients as SelectList, new { @class = "GRDropDown", @id = "ReportDD"})
<button type="submit" value="Submit" class="btn btn-default">Submit</button>
}
修复。在错误信息中有很多线索。它在抱怨没有客户。这是因为在我的下拉框中期待ClientID和ClientName。而是接收Value和Text。所以我把下拉菜单改成这样:
@Html.DropDownList("Clients", new SelectList(ViewBag.ListOfClients, "Value", "Text"), new { @class = "GRDropDown", @id = "ReportDD" })