2013-04-16 3 views
0

Web App를 사용하여 열거 형을 기반으로 ViewModel을 만듭니다. 이 뷰 모델은 ID와 이름을 전송합니다. 기본적으로이 viewModel을 사용하여 dropdownList를 사용하려고합니다.열거 형을 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

관련 문제