2009-06-30 6 views
1

Imaginez le scénario où vous avez une page de liste qui est une concaténation de plusieurs entités sur votre site (telle qu'une page de recherche). vous rassembler toutes les entités de votre site dans l'action, ainsi que la carte tous dans un type de modèle de vue générique ..Pratiques de modèle MVC (asp.net mvc) - Génération d'URL à l'action, au lieu de la vue

pseudo:

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

Ma recherche classe résultat pourrait ressembler à ceci:

SearchResult { Title, Snippet, Rating } 

Dans ce scénario, la vue n'aura aucun contexte sur le résultat de chaque résultat, alors comment générer une URL pour obtenir plus de détails, si le résultat est alors catégorisé?

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

Cela fonctionnerait, il faudrait en vue de découvrir la relation de l'ENUM à une action de contrôleur ..

Ce serait cependant poser des problèmes pour la maintenabilité, chaque nouvelle section type d'entité ou du contenu statique serait besoin d'être catégorisé, et un mappage de cette nouvelle catégorie à une action du contrôleur .. en outre, cela provoque des problèmes parce que .. quelles données dois-je passer à l'action? Et s'il n'y a pas de données à transmettre?

On dirait que le meilleur scénario serait de générer l'url 'en détails dans l'action, où il a le contexte de chaque entité, et l'action/cartographie des données ..

Est-il ok pour les contrôleurs/actions pour générer des urls, ne devraient-ils pas rester agnostiques?

Merci d'avance.

Répondre

3

Je pense que le passage des URL du contrôleur à afficher est OK. Par exemple, si vous développez un moteur de recherche Web (nouveau concurrent Google :)), il n'y a pas d'autre moyen de déterminer où un document avec un titre, un extrait et un classement donné a été trouvé.

+0

+ Tout à fait d'accord –

Questions connexes