我曾經遇到過這個問題,但沒有解決它。我有一個列表(在MVC3控制器生成):'object'不包含'X'的定義
ViewBag.Languages = db.Languages
.Select(x => new { x.Name, x.EnglishName, x.Id })
.ToList();
和我的網頁(剃刀)對我試着來遍歷它:
foreach (var o in ViewBag.Languages)
{
string img = "Lang/" + o.EnglishName + ".png";
@* work *@
}
而是參考o.EnglishName
失敗,出現錯誤:
'object' does not contain a definition for 'EnglishName'
雖然奇怪的是,如果我鍵入到立即窗口(同時調試):
o { Name = བོད་སྐད་, EnglishName = Tibetan, Id = 31 } EnglishName: "Tibetan" Id: 31 Name: "བོད་སྐད་"
顯然這個領域是存在的。我這裏有什麼問題?
哇。真棒回覆(+1)。非常感謝 - 是的,我正在移除所有對ViewBag的引用,以支持視圖模型... – ekkis
非常好,但我們有時可能需要ViewBag。我們只能將一個模型傳遞給一個視圖。但是,我們可能想要發送一些其他小數據收集,不是嗎?在這種情況下,使用ViewBag發送該小數據集合更容易。當然,您也可以使用PartialViews發送它。我不知道有沒有其他建議。 – oneNiceFriend