无法隐式转换类型'System.Collection.Generic.Ienumerable<system.web.mvc.selectedlistitem>'到'System.Collections.Generic.List<system.web.mvc.selecteditemlist>'
我正在尝试为视图模型制作一个选定的列表项,以制作下拉菜单。
测量结果的ViewModel
public List<SelectListItem> SurveyMasterList { get; set; }
MasterList从数据库中获取值
var MasterList = _mcniDbContext.SurveyMaster.Where(e => e.SurveyMasterId == tempCustomer.SurveyMasterId).ToList();
错误出现在下面的代码中。
temp.SurveyMasterList = MasterList.Select(m => new SelectListItem { Text = m.SurveyName, Value = m.SurveyMasterId.ToString() });
假设temp.SurveyMasterList也是SelectListItem的List,只需通过添加ToList((来修复第二个查询;
temp.SurveyMasterList = MasterList
.Select(m => new SelectListItem { Text = m.SurveyName, Value = m.SurveyMasterId.ToString() })
.ToList();
但最好合并两个查询
temp.SurveyMasterList = _mcniDbContext.SurveyMaster
.Where(e => e.SurveyMasterId == tempCustomer.SurveyMasterId)
.Select(m => new SelectListItem { Text = m.SurveyName, Value = m.SurveyMasterId.ToString() })
.ToList();
您可以在视图模型中将List<SelectListItem>
定义为IEnumerable<SelectListItem>
。然后在你的控制器中这样填充:
viewmodelobject.SurveyMasterList = new SelectList(_mcniDbContext.SurveyMaster, "SurveyMasterId", "SurveyName");
在你的视图中,你可以这样使用它:
@Html.DropDownList("DrpSurvey", Model.SurveyMasterList , "Master List: ", new { @class = "form-control" })