ASP.NET MVC: Vous ne savez pas comment créer ces routes
-
05-07-2019 - |
Question
J'essaie de faire les routes suivantes .. et actuellement, je vais à ce sujet dans un très long chemin .. c'est-à-dire. une instance de route pour CHAQUE route.
c'est ce que je cherche après ... (en supposant que je fais un "site web 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 non .. je ne fais absolument pas de site Web stackoverflow :))
acclamations!
(gawd je trouve dis tout tellement déroutant parfois).
La solution
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) {
//...
}
}
Autres conseils
Je changerais la dernière URL en / question / view / {subject}. Créez ensuite 3 contrôleurs:
- Contrôleur de page
- TagController
- QuestionController
dans Global.asax, créez ces itinéraires (prenez l'exemple de l'itinéraire par défaut)
J'espère que cela vous aidera.