[英]ASP.NET MVC: Populating Derived Strongly Typed View with Base Strongly Typed View
[英]what exactly is strongly typed View data in Asp.Net MVC
Asp.Net MVC中的“強類型視圖數據”是什么意思?
謝謝
ASP.NET MVC中的強類型視圖繼承自System.Web.Mvc.ViewPage<T>
並包含由T指定的類型的Model屬性。這使intellisense可以在您的視圖中工作。
每個視圖都有一個Model
屬性。 強烈鍵入視圖意味着使其繼承自某些ViewPage<T>
,並且Model屬性成為T的類型。如果不強烈鍵入視圖,則模型的類型為“對象”。
強烈鍵入View的模型的優點在於,您可以直接訪問Model的屬性。 您將獲得智能感知和編譯器檢查,而不是依靠使用“魔術字符串”來訪問ViewData字典-如果模型發生更改,這將在運行時中斷。
例如,如果您有
public class Person
{
public int Age { get; set; }
}
並在Person
類上強力鍵入View,就可以從視圖模板訪問Model.Age
。 如果您的View不是強類型的,則Model
將沒有可供您訪問的屬性,並且您必須將其顯式轉換為類型或通過ViewData字典傳遞數據。
要強烈鍵入此視圖,只需使其從ViewPage<Person>
繼承ViewPage<Person>
。
假設您需要在視圖上顯示幾條松散相關的數據:聯系信息,銷售預測和通話記錄。 您可以簡單地將它們注入到ViewData中,然后將它們拉出並從View中強行鍵入它們,但是更好的方法是創建一個自定義模型來封裝每個模型。 然后,您將強烈要求將View本身鍵入此自定義模型。 它起到了類型安全的作用,並使代碼助手在其他優點(例如可測試性)中更加直觀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.