我有一個MVC3網站,我已經設置了測試另一個網站 - 大部分是快速和骯髒的,所以我還沒有去鎮上創建模型和視圖所有視圖的模型類型 - 僅在用戶需要輸入的情況下。匿名類型缺少成員問題的動態視圖 - MVC3
好吧,讓我有一個控制器方法,投影Linq序列並將其設置爲ViewBag
。
ViewBag.SomeData = Enumerable.Range(1,10).Select(i=> new { Value = i });
在我看來(剃刀C#),那麼我想讀這一點 - 很簡單:
@foreach(dynamic item in ViewBag.SomeData)
{
@:Number: @item.i
}
除,當然,我得到一個RuntimeBinderException
,因爲在控制器中創建匿名類型是內部的到web項目的輸出程序集,這裏的實際Razor代碼將運行在由構建管理器生成的不同程序集中,因此,總之DENIED!
很明顯,一個'正確的'模型類型可以解決這個問題 - 但是讓我們說我根本不想這樣做,因爲這是我的特權(!) - 如何最好地保持代碼最小並保持動態在這裏?
使用ExpandoObject的好決定 - 已經忘記了這個選項。 –
@Jon - 謝謝!讓我們面對它吧,它是一種違背幾乎所有我們以前的C#概念的類型,因此很容易被遺忘。哦,順便說一句 - C#深度第二版的岩石。 –
我的藉口是,我很少做任何動態的事情。很高興聽到你喜歡這本書:) –