web-dev-qa-db-fra.com

Qu'est-ce qu'une vue fortement typée dans ASP.NET MVC

Qu'est-ce qu'une vue fortement typée dans ASP.NET MVC?

41
Fraz Sundal

C'est une page aspx qui dérive de System.Web.Mvc.ViewPage<TModel> . On dit que cette vue est fortement typée au type TModel. Par conséquent, il y a une propriété Model dans cette vue qui est de type TModel et vous permet d'accéder directement aux propriétés du modèle comme ceci:

<%= Model.Name %>
<%= Model.Age %>

où comme si votre page aspx dérivée de System.Web.Mvc.ViewPage vous devez extraire des valeurs de ViewData la vue ne connaît plus le type TModel:

<%= (string)ViewData["Name"] %>
<%= (int)ViewData["Age"] %>

ou pire encore:

<%= ((SomeModelType)ViewData["model"]).Name %>

et il n'y a aucune sécurité de temps de compilation dans un tel code.

Notez également qu'il y a ViewUserControl<TModel> homologue pour les partiels fortement typés (ASCX).

34
Darin Dimitrov

Les vues fortement typées sont utilisées pour le rendu de types spécifiques d'objets de modèle, au lieu d'utiliser la structure générale de ViewData. En spécifiant le type de données, vous avez accès à IntelliSense pour la classe de modèle.

11
jco

C'est une vue qui spécifie le type de l'objet qui lui est passé comme modèle - donc au lieu d'une vue qui hérite de ViewPage, elle hérite de ViewPage<T>T est le type du modèle.

3
David M