5つのドロップダウンがあり、基本的に「選択」、「はい」、「いいえ」が表示されます。最初は「選択」に設定されています。ユーザーが何かを選択すると、データをCookieに(Jqueryを使用して)保存し、最終的にはこれをViewModelに渡して、コントローラーで使用できるようにします。
ユーザーがページを更新したときに、これらのドロップダウンリストにViewModelにある値を再度入力する必要があります。
現在、私は次のコードを持っています:-
私が持っているビューの中に
<%: Html.DropDownList("FirstQuestYesNo", ViewData["FirstQuestYesNoData"] as SelectList, new { @class = "normalDropdowns" })%>
そして私のコントローラーには次のものがあります:-
var ddlYesNoData = new SelectList(new[]
{
new {ID="",Name=@Resources.GeneralTerms.GeneralTerms_Select},
new {ID="Yes",Name=@Resources.GeneralTerms.GeneralTerms_Yes},
new{ID="No",Name=@Resources.GeneralTerms.GeneralTerms_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から各ドロップダウンの値を取得し、その値をビュー内に設定しようとすることです。私が行っていることの結果として、viewModel内の値ではなく、すべてのDropdownListsオプションが「選択」として表示されます。
問題は、特定のDropDownListを「ターゲットにする」方法がわからないことです。コードを使用して、コントローラーからDropDown(この場合は「FirstQuestYesNo」)をターゲットにするにはどうすればよいですか?
あなたの助けと時間をありがとう。