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")
La Coutume De L'Éditeur De Template:
@Html.EditorFor(model => model.Foo)
Affichage Personnalisé De Modèle:
@Html.DisplayFor(model => model.Foo)
En ce qui concerne les Afficher/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?
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:
Ils respectent le modèle de hiérarchies 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").
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?