工作,我有一個性別選擇字段(請選擇 - ,男,女),我填充,在我的控制器。當頁面加載時,我希望在頁面加載時自動選擇在模型pm.Gender
中選擇的性別。SelectListItem =真不鑑於
從pm.Gender
值回來爲:
- 「」
- 「M」
- 「F」
查看:
<%: Model.Gender %>
<%: Html.DropDownListFor(m => m.Gender, (IEnumerable<SelectListItem>)ViewData["gender"], new { @class = "span2" })%>
控制器:
gender = new[] { "Select", "Male", "Female" };
List<SelectListItem> genderselectList = new List<SelectListItem>();
foreach (string item in gender)
{
SelectListItem sli = new SelectListItem { Text = item, Value = item };
if (item.Trim().StartsWith(pm.Gender))
sli.Selected = true;
genderselectList.Add(sli);
}
ViewData["gender"] = genderselectList;
調試應用程序後,我可以看到,genderselectList
包含Selected = true
對於被假定要選擇的適當的值的正確的數據。但是,當頁面加載時,在下拉列表中沒有選擇任何應該使用Html.DropDownListFor
生成的內容。
編輯:不以任何瀏覽器。
任何人都知道這可能是造成這個問題呢?任何幫助,將不勝感激。
乾杯。
編輯:
好了,所以這是我執行卡夫的解決方案後,做(實施卡夫的解決方案後)。
查看:
<%: Html.DropDownListFor(m => m.Gender, (SelectList)(ViewData["gender"]), new { @class = "span2" }) %>
控制器:
gender = new[] { "Select", "Male", "Female" };
List<SelectList> genderselectList = new List<SelectList>();
foreach (string item in gender)
{
SelectList sli;
if (item.Trim().StartsWith(pm.Gender))
sli = new SelectList(GetGender(), item, item, item);
else
sli = new SelectList(GetGender(), item, item);
//without selectedValue
genderselectList.Add(sli);
}
ViewData["gender"] = genderselectList;
當我這樣做,我得到以下異常:
Unable to cast object of type 'System.Collections.Generic.List`1[System.Web.Mvc.SelectList]' to type 'System.Web.Mvc.SelectList'.
任何人都知道我是什麼做錯了?
這是隻在IE9?我有一個類似的問題,但我無法解決。 – akatakritos
它不適用於任何瀏覽器。 –
使用'ViewData [「gender」] = new SelectList(GetGender(),「Key」,「Value」,「Male」);'在我的答案中。你沒有使用它,因爲我發佈,但混合起來。 – Kaf