2011-04-09 64 views
2

剛開始使用MVC3並嘗試在視圖中構建下拉列表時遇到問題。 視圖模型填充與項目的SelectList:DropDownListFor生成'名稱'模型'在當前上下文中不存在'錯誤

mdm.CaptionSetList=new SelectList(CaptionSet.Fetch(), "CaptionSetId", "Description") 

然後在視圖中使用:

@Html.DropDownListFor(model => model.Entity.CaptionSetId, model.CaptionSetList) 

但是當頁面命中,行被突出顯示與編譯器消息:

編譯器錯誤消息:CS0103:名稱「模式」在當前上下文中不存在

我在做什麼樣的初學者錯誤?

回答

5

爲DropDownListFor第一個參數是一個函數,使部分是正確的,但第二部分只期待的SelectList因此,所有你需要做的是

@Html.DropDownListFor(model => model.Entity.CaptionSetId, Model.CaptionSetList) 

注意大小寫。

進一步澄清

在強類型視圖Model是指結合於視圖的模型的特性。由於第二個參數只是期望列表,並且您已指定模型具有名爲CaptionSetList的屬性,因此您將該列表指定爲Model.CaptionSetList。如果您已將該列表放入ViewBag中,則會放入ViewBag.CaptionSetList

將此對比第一個參數,它是一個函數,它接受與模型相同類型的一個參數。

相關問題