2010-03-23 10 views
7

ASP.NET MVC 2 dispose de fonctionnalités puissantes pour générer le contenu dépendant du modèle de la vue Edition (en utilisant EditorForModel) et de la vue Détails (en utilisant DisplayForModel) qui utilise automatiquement les métadonnées et éditeur (ou affichage) modèles:ASP.NET MVC 2 génération de la vue Liste/Index

<% using (Html.BeginForm()) {%> 
    <%= Html.ValidationSummary(true) %> 

    <fieldset> 
     <legend><%= Html.LabelForModel() %></legend> 

     <%= Html.EditorForModel() %> 

     <p> 
      <input type="submit" value="Save" /> 
     </p> 
    </fieldset> 

<% } %> 

Cependant, je ne peux pas trouver des outils comparables pour la « dernière » étape consistant à générer l'affichage d'index (alias la vue de la liste). Il je dois coder en dur les premières colonnes de la ligne représentant les en-têtes, puis à l'intérieur de la boucle foreach:

<h2>Index</h2> 

<table> 
    <tr> 
     <th></th> 
     <th> 
      ID 
     </th> 
     <th> 
      Foo 
     </th> 
     <th> 
      Bar 
     </th> 
    </tr> 

<% foreach (var item in Model) { %> 

    <tr> 
     <td> 
      <%= Html.ActionLink("Edit", "Edit", new { id=item.ID }) %> | 
      <%= Html.ActionLink("Details", "Details", new { id=item.ID })%> | 
      <%= Html.ActionLink("Delete", "Delete", new { id=item.ID })%> 
     </td> 
     <td> 
      <%= Html.Encode(item.ID) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.Foo) %> 
     </td> 
     <td> 
      <%= Html.Encode(String.Format("{0:g}", item.Bar)) %> 
     </td> 
    </tr> 

<% } %> 

</table> 

Quelle serait la meilleure façon de générer les colonnes (métadonnées utlizing telles que HiddenInput), le but de rendre l'affichage de l'index libre des détails du modèle comme Modifier et Détails?

Répondre

1

Je pense que Phil Haack est en train de faire à peu près ce que vous cherchez ...

ASP.NET modèles MVC2 fonctionnalité est une façon assez agréable à des objets rapidement échafaudage à l'exécution. Soyez sûr de lire les séries fantastiques de Brad Wilson sur ce sujet en commençant par ASP.NET MVC 2 Templates, Part 1: Introduction.

Aussi génial que cette fonctionnalité soit, il y a un modèle qui manque visiblement. ASP.NET MVC n'inclut pas de modèle pour afficher une liste d'objets dans un format tabulaire.

Vérifiez le lien pour plus ...

+1

Je suis sûr que c'est une faute de frappe, mais son "Phil Haack" –

+0

@Vivek Oui c'était ... –

0

Jetez un oeil à code based repeater de Phil Haack. Je pense que cela peut accomplir ce que vous cherchez.

+0

Pour autant que je comprends qui a encore l'exigence que vous énumérer explicitement toutes les colonnes. J'espérais éviter cela entièrement, comme EditorForModel ou DisplayForModel. –