我有 5 个下拉菜单,基本上显示“选择”、“是”和“否”。最初它们被设置为“选择”。一旦他的用户选择了某些东西,我就会将数据存储在一个 cookie 中(使用 Jquery),并最终将其传递给 ViewModel,以便我可以在 Controller 中使用它。
当用户刷新页面时,我希望使用 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 中获取每个下拉列表的值,然后尝试在我的视图中设置该值。由于我正在做的事情,我将所有 DropdownLists 选项都作为“选择”而不是我的 viewModel 中的值。
问题是我不知道如何“定位”特定的 DropDownList。如何使用我的代码从控制器定位 DropDown(在本例中为“FirstQuestYesNo”)?
感谢您的帮助和时间。