2010-02-04 3 views
7

Je me demandais comment et quand les gens utilisent des modèles éditeur/affichage par rapport aux assistants HTML. Plus précisément, je parle de son utilisation pour rendre différents contrôles de l'interface utilisateur plutôt que de rendre des entités.Comment les gens utilisent-ils les modèles éditeur/affichage par rapport aux aides HTML?

Par exemple, j'ai quelque chose comme le atm suivant:

<tr> 
    <th><%= Html.LabelFor(x => x.ActivityTypeId) %></th> 
    <td><%= Html.EditorFor(x => x.ActivityTypeList, "MultiSelectDropDownList")%></td> 
</tr> 
<tr> 
    <th><%= Html.LabelFor(x => x.Name) %></th> 
    <td><%= Html.EditorFor(x => x.Name) %></td> 
</tr> 
<tr> 
    <th><%= Html.LabelFor(x => x.Description) %></th> 
    <td><%= Html.DisplayFor(x => x.Description, "DisplayString")%></td> 
</tr> 

Mais la fin, je me demande si je devrais faire ceci:

<tr> 
    <th><%= Html.LabelFor(x => x.ActivityTypeId) %></th> 
    <td><%= Html.MultiSelectDropDownList(x => x.ActivityTypeList)%></td> 
</tr> 
<tr> 
    <th><%= Html.LabelFor(x => x.Name) %></th> 
    <td><%= Html.EditorFor(x => x.Name) %></td> 
</tr> 
<tr> 
    <th><%= Html.LabelFor(x => x.Description) %></th> 
    <td><%= Html.DisplayString(x => x.Description)%></td> 
</tr> 

Mais si je vais avec cette deuxième option Y at-il beaucoup de point d'utilisation de l'éditeur de milieu pour ... Je serais juste un bien à l'aide de Html.Textbox et j'ai l'avantage de pouvoir définir n'importe quelle propriété html que j'aime.

Je suis intéressé quels modèles les gens utilisent ici ... Des idées?

Vive Anthony

Répondre

5

EditorFor et DisplayFor sont les aspects les plus puissants de MVC 2 et à mon avis, doivent être utilisés et abusés autant que possible.

saut à bloguer Brad Wilsons et de vérifier comment vous pouvez étendre les modèles d'objet pour concocter rapidement des écrans à base de conventions de ViewModels décorées avec des attributs: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-5-master-page-templates.html

J'utilise cette technique dans un projet en cours et Jusqu'à présent, aucune ligne de HTML n'a même été écrite pour un écran individuel. : D

0

J'aime tellement le second.

il est élégant et vous libère de chaînes que buggous :)

0

J'ai modifié (en fait, dans le processus de modification) du T4 Edit, Create et View modèles pour cracher le code que je veux. Ce code n'utilise aucune méthode DisplayFor ou EditorFor. Je n'ai pas creusé dans le code pour ces méthodes, mais je suis à peu près certain que vous verrez une réflexion en cours là-dedans. Mes modèles modifiés génèrent actuellement TextBoxFor, DropDownListFor et CheckBoxFor.

Vous pouvez utiliser la méthode dans le message de Brad Wilson que jfar a mentionné si vous préférez. Au minimum, j'aurais les modèles cracher le code pour chaque champ en utilisant DisplayFor ou EditorFor afin que vous puissiez revenir plus tard peut changer à un éditeur spécifique, plus ajouter tous les attributs nécessaires pour le champ de saisie.

Questions connexes