我知道這已被問幾次,但現有的解決方案看起來像黑客而不是一個適當的模式。Html.DropDownList中可能存在的錯誤,選擇的值不反映?
我有一個簡單的下拉列表。我正試圖用數據填充它,並選擇了一個項目。我在'填充數據部分'方面取得成功,但未能事先選擇我的首選項目。
我正在使用ASP.NET MVC 3 RC2。
重要的代碼位:
{
// Bunch of code
CategoryOptions = new SelectList(categories, "Id", "Slug", article.Category.Id);
}
現在...的CategoryOptions被傳遞到HTML輔助,像這樣:
@Html.DropDownListFor(a => a.Category, Model.CategoryOptions)
我已經看過了值傳遞到幫助並且已確認其中一個項目的選定值已設置爲true:
但是,它並不反映在幫助程序生成的Html中。沒有任何...標籤具有selected =「selected」屬性。
我使用反射來檢查代碼了一下,這條線(SelectExtensions.SelectInternal)看起來冒險:
item.Selected = (item.Value != null) ? set.Contains(item.Value) : set.Contains(item.Text);
難道我做錯了什麼嗎?或者是框架(ASP.NET MVC 3 RC2)在這裏出錯。
感謝您的回答......我也發佈了問題發佈後我發現的答案。希望這也能幫助你。 – kidoman 2010-12-20 11:12:43