我一直在閱讀專業ASP.NET MVC 1.0書籍,以及閱讀其他來源談論使用ViewModel而不是從您的控制器內的ViewData視圖。但是後來我看到很多ViewData的例子被用在那些艱難的情況下,在沒有其他方式的情況下,只能從ViewData中獲取某些東西。但後來我讀了一本像Pro ASP.NET MVC Framework的書,他所談論的只是ViewData,與ViewModel無關。那麼ViewModel是一個非常新的概念還是什麼?要使用ViewData或不使用ViewData
我看到ViewModel是一個更好的方法,但它是一個堅實的選擇?我的意思是ViewData很容易在其他之類的東西中使用,例如ViewModel不支持的HtmlHelper對象。或者例如在自定義控件中使用它(http://www.codeproject.com/KB/custom-controls/MVCCustomControls.aspx)。那麼,我是否會根據不同的目標或者什麼使用兩者的組合?如果我想在任何原因下訪問我的擴展方法中的ViewModel,該怎麼辦?我在這裏失去了要走的路。我知道ViewData不是強類型的,但你可以設置你的視圖來指定類型,因此使你的ViewData類型,但我只是想知道。對ViewData有如此多的支持,但我知道ViewModel是一種更加抽象和分離的方式,以及它被輸入的方式。我只是不想在需要獲取某些數據的場景中縮短自己,例如可以從其他對象(如HtmlHelper類)輕鬆訪問的ViewData。
想法?標準是什麼?經驗?我關了一下,還是隻是使用組合,在其他情況下仍然使用ViewData,而不僅僅是將數據從Controller發送到View或什麼?
,如果你是不是在所有使用的ViewData,而是使用視圖模型與你的控制器,這似乎是在一個全有或全無您使用視圖模型,因此ViewData的沒有目的,因爲你還沒有與任何設置在從你的控制器,所以它在這一點上沒有用處?我在這裏困惑任何人或方式?當然,把自己搞糊塗了。
我不是在談論ViewData.Model。我正在討論在視圖和控制器「視圖模型」之間存在的額外層類,它們負責從模型中獲取特定對象,以便控制器可以使用它們而不是控制器從模型層抓取項目。 – PositiveGuy 2009-06-17 13:45:48