2013-08-30 37 views
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.ListOfValue作爲值,我想使用j.UserID作爲值。問題是j.UserID是從數據庫返回的長類型,Value總是期待一個字符串。我試過j.UserID.ToString(),但它有編譯錯誤。我可以知道我該如何處理它?MVC如何在ViewData中投入很長的字符串Dropdownlist

+0

什麼是編譯錯誤 – Rikon

+0

@Rikon,LINQ到實體無法識別方法「String.String的ToString()」方法,而這種方法不能被翻譯成店表達 –

回答

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() 
相關問題