MVC如何在ViewData Dropdownlist中将long转换成字符串

时间:2013-08-30 02:51:56

标签: asp.net-mvc drop-down-menu viewdata

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>

1 个答案:

答案 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()