我開始使用ASP .NET MVC。並且,正如我所看到的,有兩種方法可以將數據傳遞到視圖:強類型視圖vs動態類型視圖
- Make View繼承ViewPage並將動態對象傳遞給視圖。
- 生成強類型View,繼承ViewPage,並將自定義視圖模型類的實例傳遞給視圖。
每個人的優點和缺點是什麼?
我開始使用ASP .NET MVC。並且,正如我所看到的,有兩種方法可以將數據傳遞到視圖:強類型視圖vs動態類型視圖
每個人的優點和缺點是什麼?
只要有可能,請始終使用強類型視圖,以便您確切知道將哪些數據作爲模型傳遞給該視圖。如果你使用動態的,你實際上並不總是知道數據會是什麼,並且如果事情發生變化,可能會導致運行時錯誤。
強類型視圖的其他優點是:視圖編譯期間的代碼驗證和智能感知。 – 2013-09-08 08:23:02
根據JOSH DOOLAN,強類型視圖對於處理複雜類型數據更有用。 例如,我有一類人組成:
Public Class Person
{
String _name;
String _age;
Pet _pet;
// gets & sets below..etc
}
如果在事件中,你有,你想這個特殊的類綁定到一個表單(以創建「新」的人)一個用例,直到你遇到複雜類型的Pet,它會非常直線前進。
你要做的只是強制將人物鍵入特定視圖,然後在該視圖內調用強類型爲「寵物」的模板或視圖文件。要將複雜類型分配給模板/視圖,只需使用html mvc helpers Html.ControlFor。在因爲你不是用一個簡單的HTML控件處理像一個文本框這個特殊的情況下,你會使用:
Html.EditorFor(model => model.Pet, "Pet")
在這裏你可以看到,你是把視圖模型「寵物」的一個實例爲強類型化視圖稱爲「寵物」,以便在提交原始視圖表單時取回完整的數據填充視圖模型。
這是一個非常強大的方式來簡化和封裝更復雜,更大規模的網站中的數據。
我認爲當你不問「哪個更好」,而只是要求優點/缺點時,它就沒有什麼爭議。 – 2011-02-10 10:31:55