簡體   English   中英

什么是Asp.Net MVC中強類型化的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM