Comme déjà mentionné, probablement votre meilleur pari serait d'utiliser le nouveau Areas feature
Vous pouvez réaliser ce type de routage sans zones, mais à mesure que le nombre de contrôleurs augmente, la maintenabilité de votre site diminue. Essentiellement, vous devez coder en dur le nom du contrôleur dans la définition d'itinéraire, ce qui signifie que vous devez ajouter de nouveaux mappages d'itinéraires pour chaque nouveau contrôleur d'administration. Voici quelques exemples de la façon dont vous pouvez configurer vos itinéraires sans zones.
routes.MapRoute("AdminQuestions", // Route name
"admin/question/{action}/{id}", // URL with parameters
new { controller = "AdminQuestion", action = "Index" } // Parameter defaults
);
routes.MapRoute("AdminUsers", // Route name
"admin/user/{action}/{id}", // URL with parameters
new { controller = "AdminUser", action = "Index" } // Parameter defaults
);
Sinon, vous pourrait tout itinéraire à travers le contrôleur d'administration, mais il serait rapidement devenir très salissant avec vos actions de contrôleur exécuter plusieurs rôles.
routes.MapRoute("Admin", // Route name
"admin/{action}/{type}/{id}", // URL with parameters
new { controller = "Admin", action = "Index" } // Parameter defaults
);
Avec votre action AdminController (s) ressemblant à:
public virtual ActionResult Create(string type, int id)
{
switch (type)
{
case 'question':
// switch/case is code smell
break;
case 'user':
// switch/case is code smell
break;
// etc
}
}
son comme je veux un contrôleur « admin » et deux actions de l'utilisateur »et « supprimer » –
itinéraires plus longs doivent être avant plus court routes. Publiez votre code de routage. –
désolé je ne l'ai pas encore ... juste je me demandais comment faire le changement par défaut pour gérer cela merci –