我在控制器中使用以下代码
BlueBusDB_Context db = new BlueBusDB_Context();
List<SelectListItem> li =new List<SelectListItem>();
li = db.M_BLUEBUS_STATES.Select(s => new SelectListItem {Text = s.STATE_NAME, Value = Convert.ToString(s.STATE_CODE)}).ToList();
ViewBag.State = li;
return View();
然后在我的创建视图中我想绑定下拉列表,我正在使用下面的文件
@Html.DropDownList("State",ViewBag.State as List<SelectListItem>)
我收到了上述错误..
答案 0 :(得分:2)
Linq to Entities不支持Convert
(请参阅supported funuctions)
我首先创建一个匿名类型然后转换为SelectListItems以更好地分离关注点:
li = db.M_BLUEBUS_STATES
.Select(s => new { s.STATE_NAME, s.STATE_CODE })
.AsEnumerable()
.Select(x => new SelectListItem { Text = x.STATE_NAME, Value = x.STATE_CODE.ToString()})
.ToList();
答案 1 :(得分:1)
您需要使用常规ToString
方法,而不是Convert
类中的方法:
li = db.M_BLUEBUS_STATES.Select(s => new SelectListItem {
Text = s.STATE_NAME,
Value = s.STATE_CODE.ToString()
}).ToList();