2010-03-23 22 views
7

ASP.NET MVC 2 tiene potentes funciones para generar el contenido dependiente del modelo de la vista Editar (usando EditorForModelo) y la vista Detalles (usando DisplayForModel) que utiliza metadatos y editor (o la pantalla) plantillas:Generación de ASP.NET MVC 2 de la vista Lista/Índice

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

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

     <%= Html.EditorForModel() %> 

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

<% } %> 

sin embargo, no puedo encontrar ninguna herramienta comparables para el "último" paso de generar la vista del índice (también conocido como la vista Lista). No me tienen que codificar las columnas primeros en la fila que representan las cabeceras y en el interior del bucle 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> 

¿Cuál sería la mejor manera de generar las columnas (Utlizing metadatos como HiddenInput), con el objetivo de hacer que la vista del índice esté libre de detalles del modelo como Editar y Detalles?

Respuesta

1

Creo que Phil Haack está haciendo más o menos lo que estás buscando ...

ASP.NET cuentan con plantillas MVC2 es una muy buena manera de objetos rápidamente andamio en tiempo de ejecución. Asegúrese de leer la fantástica serie de Brad Wilson sobre este tema comenzando en ASP.NET MVC 2 Templates, Part 1: Introduction.

Tan grande como es esta característica, hay una plantilla que brilla por su ausencia. ASP.NET MVC no incluye una plantilla para mostrar una lista de objetos en un formato tabular.

Comprobar el enlace para más ...

+1

Estoy seguro de que es un error tipográfico, pero es "Phil Haack" –

+0

@Vivek Sí, fue ... –

0

Eche un vistazo a code based repeater de Phil Haack. Creo que eso puede lograr lo que estás buscando.

+0

En lo que a entender que todavía tiene el requisito de que la lista explícitamente todas las columnas. Esperaba evitarlo por completo, como EditorForModel o DisplayForModel. –

Cuestiones relacionadas