2014-09-15 2 views
0

선택 목록에서 선택한 값을 어떻게 설정합니까? 예를 들어, 내가 기존 클라이언트를 표시하고 있는데 "성별"에 대한 드롭 다운 목록이있는 경우, "남성"을 선택해야합니다 (DB에 저장된 내용). 어떻게해야합니까?Asp.net MVC SelectList - 값 설정

내가

public ActionResult Edit(string id) 
     { 
var client= _clientService.FindById(id); 
      var model = new ViewModels.Client() 
      { 
GenderId= client.GenderId, 
GenderList= CreateGenderList(GenderId) 
}; 
} 

private IEnumerable<SelectListItem> CreateGenderList(int gId) 
     { 

      var list = Enum.GetValues(typeof(DomainObjects.Client.GenderList)) 
       .Cast<DomainObjects.Client.GenderList>() 
       .Select(v => new SelectListItem { Text = v.ToString(), Value = ((int)v).ToString() }); 
//Need to set the selected value, how? 


      return list.ToList(); 


     } 

같은 일을 내 모델 메신저를 짓고 있어요 사전에 감사합니다.

+0

을 했습니까? 'GenderId'의 값이 옵션들 중 하나의 값과 일치하면 기본값으로 –

답변

0

추가 SelectListItem.Selected 속성을 사용하고 이것을 true로 설정해야합니다. 예를 들어 :

var list = Enum.GetValues(typeof(DomainObjects.Client.GenderList)) 
      .Cast<DomainObjects.Client.GenderList>() 
      .Select(v => new SelectListItem { 
    Text = v.ToString(), 
    Value = ((int)v).ToString()}); 

var maleGenderItem = list.Single(x => x.Text == "Male"); 
maleGenderItem.Selected = true; 
+0

Holf를 선택합니다. 이것은 실제로 기존 목록을 selected = true로 업데이트하지 않습니다 –

0

이 어떻게 당신이 목록에서 드롭 다운을 생성하는 그것을

var list = Enum.GetValues(typeof(DomainObjects.Client.GenderList)) 
       .Cast<DomainObjects.Client.GenderList>() 
       .Select(v => new SelectListItem { Text = v.ToString(), Value = ((int)v).ToString(), Selected = gName.ToString() == ((int)v).ToString() }); 

      return list.ToList();