Question

Je me demandais si je pouvais créer une carte de routage avec un niveau supérieur au contrôleur. Le routage typique comprendrait "/ controller / action / id". Ce que je recherche, c’est quelque chose comme "section / contrôleur / action / id". ou "contrôleur / section / action / id". Comment puis-je faire cela?

Était-ce utile?

La solution

Pas de problème. Créez simplement une route dont l'URL est, par exemple

chemin / vers / mon / application / {contrôleur} / {action} / {id}

... et fournissez un contrôleur par défaut et une action comme d'habitude.

Un exemple concret de cela est

context.MapRoute(
    "Admin_default",
    "admin/{controller}/{action}/{id}",
    new { controller = "AdminHome", action = "Index", id = "" }
);

Ceci mappera, par exemple, les URL suivantes:

/admin/                   => AdminHomeController.Index
/admin/adminhome/         => AdminHomeController.Index
/admin/other/             => OtherController.Index
/admin/statistics/view/50 => StatisticsController.View(50)

Notez cependant que si vous avez également une route par défaut, par exemple, procédez comme suit:

context.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" }
);

... alors les méthodes d'action du contrôleur dans le routage Admin peuvent également être accessibles via cette route. Utilisez le débogueur de routage d'URL pour plus d'informations. .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top