2010-03-23 13 views
7

ASP.NET MVC 2 ma zaawansowane funkcje do generowania zależnej od modelu zawartości widoku edycji (przy użyciu EditorForModel) i widoku szczegółów (przy użyciu DisplayForModel), który automatycznie wykorzystuje metadane i Editor (lub wyświetlacz) szablony:Generacja ASP.NET MVC 2 widoku listy/indeksu

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

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

     <%= Html.EditorForModel() %> 

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

<% } %> 

jednak nie mogę znaleźć żadnych porównywalnych narzędzi do „ostatniej” etap generowania widoku indeksu (aka widoku listy). Nie muszę ciężko kodem pierwsze kolumny w wierszu reprezentujące nagłówki, a następnie wewnątrz pętli 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> 

Jaki byłby najlepszy sposób na generowanie kolumny (utlizing metadanych, takich jak HiddenInput), z celem uczynienia widoku indeksu wolnym od szczegółowych danych modelu, takich jak edycja i szczegóły?

Odpowiedz

1

myślę że Phil Haack robi dość dużo, co szukasz ...

ASP.NET szablony MVC2 cechą jest bardzo dobry sposób, aby szybko rusztowań przedmiotami w czasie wykonywania. Koniecznie przeczytaj fantastyczną serię Brada Wilsona na ten temat, zaczynając od ASP.NET MVC 2 Templates, część 1: Wprowadzenie.

Tak duża jak ta cecha jest jeden szablon, którego wyraźnie brakuje. Środowisko ASP.NET MVC nie zawiera szablonu do wyświetlania listy obiektów w formacie tabelarycznym.

Sprawdź link do więcej ...

+1

Jestem pewien, że to literówka, ale jej "Phil Haack" –

+0

@Vivek Tak, to było ... –

0

Zobacz, jak Phil Haack ma code based repeater. Myślę, że może to osiągnąć to, czego szukasz.

+0

O ile mi zrozumieć, że wciąż ma wymogu, że jawnie listę wszystkich kolumn. Miałem nadzieję, że całkowicie tego unikam, na przykład EditorForModel lub DisplayForModel. –