ASP.NET MVC 3 - Partielle vs Modèle d'Affichage vs Éditeur de Modèle

Donc, le titre devrait parler pour lui-même.

Pour créer des composants réutilisables dans ASP.NET MVC, nous avons 3 options (peut-être d'autres que je n'ai pas mentionné):

Vue Partielle:

@Html.Partial(Model.Foo, "SomePartial")

Personnalisé De L'Éditeur De Modèle:

@Html.EditorFor(model => model.Foo)

Affichage Personnalisé Modèle:

@Html.DisplayFor(model => model.Foo)

En termes de la taille réelle/HTML, tous les trois implémentations sont identiques:

@model WebApplications.Models.FooObject

<!-- Bunch of HTML -->

Donc, ma question est - quand/comment voulez-vous décider lequel des trois à utiliser?

Ce que je suis vraiment à la recherche d'une liste de questions à vous poser avant de créer, pour lequel les réponses peuvent être utilisés pour décider sur le modèle à utiliser.

Voici les 2 choses que j'ai trouvé de mieux avec EditorFor/méthode displayfor:

  1. Ils respectent hiérarchies du modèle lors du rendu HTML helpers (e.g si vous avez un "Bar" dans l'objet de votre "Foo" du modèle, les éléments HTML pour la "Barre" sera affiché avec "Toto.Bar.ElementName", tandis qu'un partiel aura "ElementName").

  2. Plus robuste, e.g si vous avez eu une List<T> de quelque chose dans votre ViewModel, vous pouvez utiliser @Html.DisplayFor(model => model.CollectionOfFoo), et MVC est assez intelligent pour voir que c'est une collecte et le rendu de l'écran d'affichage unique pour chaque élément (par opposition à une Partielle, qui aurait besoin d'une explicite pour la boucle).

J'ai aussi entendu méthode displayfor rend une "lecture seule" modèle, mais je ne comprends pas - je n'ai pas pu jeter un formulaire de là-bas?

Quelqu'un peut me dire d'autres raisons? S'il existe une liste/article quelque part en comparant les trois?

  • Les concepts de base de l'éditeur et des modèles d'affichage sont clairement définis dans les documents de la asp.net mvc 2. Les modèles sont partiels qui adhèrent à une convention spécifique. Les situations qui en font des modèles mieux ou pire que les vieux partiels sont presque strictement dépendante de savoir si ou non la convention vaut adhésion dans votre application.
InformationsquelleAutor RPM1984 | 2011-02-18