2010-11-29 57 views
3

什麼是最好的做法 - 只使用不帶任何參數的強類型的意見,通過ViewData字典傳遞,或它在使用這樣的事情在一個視圖中的不壞主意:ASP.NET MVC強類型的意見或不?

<%: (string)ViewData["helloMessage"]%> 

感謝。

回答

6

您應該更喜歡強類型視圖。在某些情況下,你只需要一個字符串,就像你的例子中那樣,它不屬於模型,那麼使用它就可以了。另一種方法是將這個變量封裝到一個類中,並將該類傳遞給視圖。結果將是一個強類型的視圖:-)

我個人不喜歡神奇的字符串。

+1

如果您只是將一個字符串傳遞給視圖,則不需要爲該字符串創建一個特殊的類。相反,將字符串類本身作爲模型傳遞:`string a =「」; return View(a);`另外,如果它是一個字符串,則必須執行`返回View((object)a);`以便該字符串不會被View名稱混淆 - 但是,您可以保留指向一個字符串模型的視圖。 – 2010-11-29 18:45:19

+0

好點Maxim ;-) – Mariusz 2010-11-29 19:06:27

1

使用「魔術字符串」沒有任何問題
但是,他們受制於打字錯誤。

在MVC 3中,在控制器中有一個動態對象ViewModel,它對應於視圖中的View對象。
因此,您可以在控制器中指定ViewModel.MyData="something";並在您的視圖中將其用作@View.MyData
這是一種更好的方法。

只有強類型視圖纔有益於編譯時檢查。
這取決於你自己決定。
我個人使用動態對象。