2009-06-30 13 views
1

Stellen Sie sich vor, Sie haben eine Auflistungsseite, die eine Verkettung mehrerer Entitäten auf Ihrer Site darstellt (z. B. eine Suchseite). Sie sammeln alle Objekte Ihrer Website in der Aktion, und sie alle in eine allgemeine Ansicht Modelltyp zuordnen ..MVC Musterpraktiken (asp.net mvc) - Generieren von URLs bei der Aktion anstelle der Ansicht

pseudo:

from articles, posts, projects 
orderby rating 
select top 50 as 'SearchResult' 

Meine Suchergebnis Klasse könnte wie folgt aussehen:

SearchResult { Title, Snippet, Rating } 

In diesem Szenario wird die Ansicht keinen Zusammenhang haben, was jedes Ergebnis "ist". Wie kann es also eine URL erzeugen, um mehr Details zu erhalten, sollte das Ergebnis dann kategorisiert werden?

SearchResult { Title, Snippet, Rating, ResultType } 
where ResultType is { Article, Post, Project } enum 

Dies funktionieren würde, wäre es die Ansicht erfordern, die die Beziehung der Enumeration zu einer Controller-Aktion zu entdecken ..

Dies ist jedoch Probleme für die Wartbarkeit verursachen würde, jede neue Art Einheit oder statischer Inhalt Abschnitt würde müssen kategorisiert werden, und ein Mapping von dieser neuen Kategorie zu einer Controller-Aktion. Zusätzlich verursacht dies Probleme, weil .. welche Daten ich an die Aktion übergebe? Was ist, wenn keine Daten zu übergeben sind?

scheint die beste Szenario url die ‚mehr Details‘ in der Aktion zu erzeugen wäre, wo es Kontext jedes Unternehmen hat, und die Aktion/Datenzuordnung ..

Ist es für Controller/Aktionen ok Urls generieren, sollten sie nicht Agnostiker bleiben?

Vielen Dank im Voraus.

Antwort

3

Ich denke, die Weitergabe von URLs vom Controller zur Ansicht ist in Ordnung. Wenn Sie zum Beispiel eine Web-Suchmaschine entwickeln (neuer Google-Konkurrent :)), gibt es keine andere Möglichkeit, zu bestimmen, wo ein Dokument mit gegebenem Titel, Snippet und Bewertung gefunden wurde.

+0

+ Stimme völlig zu –

Verwandte Themen