如何将 Ienumerable<system.web.mvc.selectedlistitem> 转换为 Generic.List<system.web.mvc.selectedit



无法隐式转换类型'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" })

相关内容

最新更新