2013-04-16 80 views
0

我正在使用Web Api基於Enum構建ViewModel。此視圖模型將發送id和名稱。基本上我想使用這個viewModel來使用dropdownList。如何將Enum轉換爲ViewModel

這是我的代碼:工作正常,但我不想在Web Api中使用ListItem。

// GET api/values 
    public List<DropdownViewModel> Get() 
    { 
     List<DropdownViewModel> ddlList = new List<DropdownViewModel>(); 

     foreach (int r in Enum.GetValues(typeof(CountryEnum))) 
     { 
      ListItem item = new ListItem(Enum.GetName(typeof(CountryEnum), r), r.ToString()); 
      ddlList.Add(new DropdownViewModel 
      { 
       id = item.Value, 
       name = item.Text      
      }); 
     } 

     return ddlList; 
    } 

任何人都可以不使用ListItem重新考慮這段代碼嗎?

回答

0

該Linq 選擇方法應該工作。

編輯:這只是表明,如果它沒有測試它不起作用。這已經過測試。它應該工作。

public List<DropdownViewModel> Get() 
{ 
    return Enum.GetValues(typeof (CountryEnum)).Cast<int>() 
     .Select(id => new DropdownViewModel 
     { 
      id = id, 
      name = Enum.GetName(typeof (CountryEnum), id) 
     }).ToList(); 
} 
+0

對不起,沒有工作... – HardCode

+0

對不起。我自大,沒有測試。我更新了代碼。 – wmchristie