Asp.net-Mvc

沒有具有鍵 ‘xxx’ 的 ‘IEnumerable<SelectListItem>’ 類型的 ViewData 項

  • May 17, 2010

Stack Overflow 上有幾篇關於此的文章,但沒有一個答案似乎可以解決我目前情況下的問題。

我有一個帶有表格的頁面,每一行都有許多文本欄位和一個下拉列表。所有下拉列表都需要使用相同的 SelectList 數據,因此我將其設置如下:

控制器

ViewData["Submarkets"] = new SelectList(submarketRep.AllOrdered(), "id", "name");

看法

&lt;%= Html.DropDownList("submarket_0", (SelectList)ViewData["Submarkets"], "(none)") %&gt;

我在很多地方都使用了這個設置,但由於某種原因,在這個特定的視圖中我得到了錯誤:

沒有具有鍵“submarket_0”的“IEnumerable”類型的 ViewData 項。

好的,所以答案來自關於這個問題的其他一些文章,它是:

如果您ViewData包含一個與您的即“submarket_0”SelectList同名的,如果您不指定第二個參數(在這種情況下是源 SelectList ),Html 幫助程序將自動使用該數據填充您。DropDownList``DropDownList

我的錯誤發生了什麼:

因為包含下拉列表的表在部分視圖中,並且ViewData已更改並且不再包含SelectList我引用的,所以HtmlHelper(而不是拋出錯誤)試圖在 ViewData 中找到名為“submarket_0”的 SelectList(GRRRR! !!)它仍然找不到,然後在上面拋出一個錯誤:)

如果我錯了請糾正我

引用自:https://stackoverflow.com/questions/2849341