2012-10-15 2 views
0

기본적으로 "선택", "예"및 "아니오"를 표시하는 5 개의 드롭 다운이 있습니다. 초기에는 "선택"으로 설정됩니다. 사용자가 무엇인가를 선택하면 쿠키 (Jquery 포함)에 데이터를 저장하고이를 ViewModel에 전달하여 컨트롤러에서 사용할 수 있도록합니다.컨트롤러에서보기에서 드롭 다운 목록의 선택된 값 설정 액션

사용자가 페이지를 새로 고치면이 드롭 다운 목록에 ViewModel에있는 값이 다시 채워지 길 원합니다. 나는 다음과 같은 코드가 순간

: -보기 내부

을 나는

<%: Html.DropDownList("FirstQuestYesNo", ViewData["FirstQuestYesNoData"] as SelectList, new { @class = "normalDropdowns" })%> 

을 가지고 내 컨트롤러에서 나는 다음과 같은 한 -

  var ddlYesNoData = new SelectList(new[] 
             { 
              new {ID="",[email protected]_Select}, 
              new {ID="Yes",[email protected]_Yes}, 
              new{ID="No",[email protected]_No}, 
             }, 
     "ID", "Name", 1); 


     //Refresh the YesNo dropdown with the correct vals 
     Dictionary<string, string> YesNoData = new Dictionary<string, string>(); 
     YesNoData.Add("FirstQuestYesNoData", viewModel.FirstQuestYesNoValue); 
     YesNoData.Add("SecondQuestYesNoData", viewModel.SecondQuestYesNoValue); 
     YesNoData.Add("ThirdQuestYesNoData", viewModel.ThirdQuestYesNoValue); 
     YesNoData.Add("FourthQuestYesNoData", viewModel.FourthQuestYesNoValue); 
     YesNoData.Add("FifthQuestYesNoData", viewModel.FifthQuestYesNoValue); 

     foreach (var item in YesNoData) 
     { 
      ViewData[item.Key] = ddlYesNoData; 
      if (item.Value != null) 
      { 
       var selected = ddlYesNoData.Where(x => x.Value == item.Value).First(); 
       selected.Selected = true; 
      } 
     } 

그래서 기본적으로 무엇을 내가하고있는 일은 viewModel에서 각 드롭 다운 값을 가져온 다음 내 View 내에서 그 값을 설정하려고하는 것입니다. 내가 한 일의 결과로, 내 viewModel 내부의 값 대신에 "DropDown"옵션을 "Select"로 사용하고 있습니다.

문제는 특정 DropDownList를 "대상 지정하는"방법을 모르겠다는 것입니다. 내 코드를 사용하여 컨트롤러에서 DropDown (이 경우 "FirstQuestYesNo")을 어떻게 타겟팅합니까?

도움과 시간을 보내 주셔서 감사합니다.

답변

0

컨트롤러 동작에서 FirstQuestYesNo 속성을 해당 값으로 설정하기 만하면됩니다. 예 :

ViewData["FirstQuestYesNo"] = "Yes"; // this value might come from a cookie 

그러면 자동으로 옵션이 value="Yes"으로 사전 선택됩니다. 분명히이 값은 쿠키에서 가져옵니다. foreach 루프가 필요하지 않습니다.

+0

오, 너무 쉽게! 나는 그것을 어떻게 볼 수 없었을 까! 대린 감사합니다! – Johann

관련 문제