0
ViewData["dropDown_ViewOwnerShare"] = correspondingDropDownValue.Select(j => new SelectListItem { Text = j.ListOfValue, Value = j.ListOfValue, Selected = j.ListOfValue == x.DefaultValue }).ToList();

基于以上代码,成功生成了下拉列表viewdata["dropDown_e"]。现在对于每个元素,我想使用 j.UserID 作为值,而不是使用 j.ListOfValue 作为值。问题是 j.UserID 是从数据库返回的长类型,而 Value 总是需要一个字符串。我试过 j.UserID.ToString() 但它有编译错误。我可以知道我应该如何处理吗?

4

1 回答 1

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()   
于 2013-08-30T06:56:38.100 回答