2008-10-31 9 views
0

J'essaie de faire les routes suivantes .. et actuellement je vais à ce sujet dans un vraiment long chemin .. ie. une instance de route pour CHAQUE route.ASP.NET MVC: Je ne sais pas comment faire ces routes

ce que je suis après ... (en supposant que je fais un « site stackoverflow »)

/      <-- root site 
/page/{page}    <-- root site, but to the page of questions. 
/tag/{tag}/page/{page} <-- as above, but the questions are filtered by tag 
/question/ask   <-- this page :P 
/question/{subject}  <-- reading about a question 

(et pas .. Je suis le plus fait certainement pas un site stackoverflow :)

bravo!

(gawd je trouve dis tout si confus parfois).

Répondre

2

Pour votre troisième, je ferais quelque chose comme ceci:

routes.MapRoute("page-tag", "tag/{tag}/page/{page}", new {controller="question", action="FilterByTag"}); 

Votre méthode d'action pourrait alors ressembler à ceci:

public class QuestionController : Controller { 
    public ActionResult FilterByTag(string tag, int page) { 
    //... 
    } 
} 
+0

@Phil, si j'utilise votre route tag-page ... dois-je faire un nouveau chemin pour/page ou/tag? alternativement ... devrais-je avoir des itinéraires séparés pour ceux-ci? ou devraient-ils être des chaînes de requête à la place parce qu'elles sont des actions à valeur ajoutée mineures à l'action principale (énumérant des questions). –

+0

À vous de voir. Les deux sont des approches valables. Certaines personnes n'aiment pas les paramètres de chaîne de requête, mais la plupart des raisons de cette vue sont désormais supprimées. Google indexe les paramètres de chaîne de requête. – Haacked

+0

Phil, si vous deviez faire un paging/tri/filtrage sur une liste d'éléments (par exemple, vue 'questions', ou 'produits', etc), comment le feriez-vous? (postez un exemple de route/URL pour expliquer votre réponse). S'il vous plaît :) –

0

Je voudrais changer la dernière adresse à/question/view/{subject}. Futher Créer 3 contrôleurs:

  • PageController
  • TagController
  • QuestionController

dans Global.asax créer ces routes, (prendre exemple sur la route par défaut)

Hope this helps .

+0

Vive le commentaire. Je ne suis pas après quels contrôleurs je dois faire, juste comment définir les routes correctement .. et combien de routes. –

Questions connexes