2010-02-02 22 views

risposta

3

Una vista fortemente tipizzata in ASP.NET MVC eredita da System.Web.Mvc.ViewPage<T> e contiene una proprietà Model di tipo specificato da T. Ciò consente a intellisense di funzionare nelle visualizzazioni.

2

ogni vista ha una proprietà Model. Per digitare fortemente una vista significa renderla ereditaria da alcuni ViewPage<T> e la proprietà Model diventa il tipo di T. Se non si digita fortemente la vista, il modello è di tipo "Oggetto".

La forte digitazione del modello di View ha vantaggi in quanto è possibile accedere direttamente alle proprietà del modello. Ottieni controllo intellisense e compilatore, invece di fare affidamento sull'uso di "stringhe magiche" per accedere a un dizionario ViewData, che si interromperà in fase di esecuzione se il tuo modello dovesse mai cambiare.

Ad esempio, se si ha

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

e hai fatto la tua vista fortemente tipizzato sulla classe Person, si sarebbe in grado di accedere Model.Age dai vostri modelli di vista. Se la tua vista non è stata digitata, allora Model non avrebbe alcuna proprietà per l'accesso, e dovresti eseguirne il cast esplicito su un tipo o passare i tuoi dati attraverso un dizionario ViewData.

Per digitare con forza questa vista, è sufficiente ereditarla da ViewPage<Person>.

1

Supponiamo di avere bisogno di visualizzare diversi pezzi di dati liberamente correlati su una vista: informazioni di contatto, previsioni di vendita e cronologia chiamate. Potresti semplicemente inserirli nel ViewData ed estrarli e digitarli fortemente dalla View, tuttavia un approccio migliore sarebbe creare un modello personalizzato che incapsula ognuno di questi. Quindi dovrai digitare la vista stessa su questo modello personalizzato. Gioca in sicurezza di tipo e rende il code-assist più intuitivo tra gli altri vantaggi come la testabilità.

Problemi correlati