2010-02-02 82 views

回答

3

ASP.NET MVC中的強類型視圖繼承自System.Web.Mvc.ViewPage<T>幷包含由T指定類型的Model屬性。這允許intellisense在視圖中工作。

2

每個視圖都有一個Model屬性。要強類型化視圖意味着使它從一些ViewPage<T>繼承,並且Model屬性成爲T的類型。如果您沒有強制鍵入視圖,則該模型的類型爲「Object」。

強烈地輸入View的模型具有優點,因爲您可以直接訪問模型的屬性。你會得到intellisense和編譯器檢查,而不是依靠使用「魔術字符串」來訪問ViewData字典 - 如果你的模型發生了變化,它將在運行時中斷。

例如,如果你有

public class Person 
{ 
    public int Age { get; set; } 
} 

,你做你的視圖強類型的Person類,你就可以訪問您的視圖模板Model.Age。如果您的View沒有強類型,那麼Model將沒有屬性供您訪問,您必須將其顯式轉換爲類型或通過ViewData字典傳遞數據。

要強烈鍵入此視圖,您只需使其從ViewPage<Person>繼承。

1

假設您需要在視圖上顯示幾條鬆散相關的數據:聯繫信息,銷售預測和通話記錄。你可以簡單地將這些注入到ViewData中,然後將它們從視圖中強制類型化,然而更好的方法是創建一個封裝每個視圖的自定義模型。然後,您會強烈地將視圖本身輸入到此自定義模型中。它起着類型安全性作用,並使代碼輔助功能更直觀,其中包括可測試性等其他好處。