ViewData["dropDown_ViewOwnerShare"] = correspondingDropDownValue.Select(j => new SelectListItem { Text = j.ListOfValue, Value = j.ListOfValue, Selected = j.ListOfValue == x.DefaultValue }).ToList();
基于上面的代码,成功生成了一个下拉列表viewdata [“dropDown_e”]。现在对于每个元素,而不是使用j.ListOfValue作为Value,我想使用j.UserID作为Value。问题是j.UserID是从数据库返回的long类型,Value总是期望一个字符串。我已经尝试过j.UserID.ToString()但它有编译错误。我可以知道我应该怎么处理它?</ p>
答案 0 :(得分:1)
什么是correspondingDropDownValue
?假设它是IQueryable<T>
,对吧?首先,您需要从数据库中获取所有必填字段,然后将结果转换为IEnumerable<T>
,然后 - 创建SelectListItems
列表。像这样:
correspondingDropDownValue
.Select(j => new {Value = j.UserID, Text = j.SomeTextField}) // SELECT UserID, SomeTextField FROM SomeTable
.AsEnumerable() // Evaluate the query
.Select(j => new SelectListItem // Work with in-memory objects using LINQ to Objects instead of LINQ to Entities
{
Value = j.Value.ToString(),
Text = j.Text,
Selected = j.Value == x.DefaultValue
})
.ToList()