[ASP.NET MVC 2] DropDownList 的 name 和 ViewData 的名稱不要設一樣的

摘要:[ASP.NET MVC] DropDownList 的 name 和 ViewData 的名稱不要設一樣的

 

我在寫 DropDownList 的時候原本是這樣寫
<%: Html.DropDownList("Month", ViewData["Month"] as SelectList, "---請選擇---")%>
 
後來因為要測試,就在前面加了一行預設值
<% ViewData["Month"] = "五月";%>
<%: Html.DropDownList("Month", ViewData["Month"] as SelectList, "---請選擇---")%>
 
但是這樣會發生錯誤,它會告訴你
具有索引鍵 'Month' 的 ViewData 項目為 'System.String' 型別,但必須是 'IEnumerable<SelectListItem>' 型別。 
 
所以 DropDownList 的 name 和 ViewData 的名稱最好不要設一樣的,
改成
<% ViewData["Month"] = "五月";%>
<%: Html.DropDownList("Month", ViewData["MonthItem"] as SelectList, "---請選擇---")%>
這樣就不會有問題了。