J'ai donc l'application ASP.NET MVC. Je voudrais configurer ses routes. Voici le code de mon RouteConfig:Contraintes dans l'itinéraire
public static void Register(RouteCollection routes, bool useAttributes = true)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("favicon.ico");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Cette route fonctionne très bien. En plus, j'ai une zone dans mon application et j'essaye de configurer ses routes aussi. Il est mon code d'enregistrement de la zone:
public override void RegisterArea(AreaRegistrationContext context)
{
try
{
context.MapRoute(
name: "SiteSettings_Controller",
url: "SiteSettings/{controller}/{action}/{id}",
defaults: new {action = "Index", id = UrlParameter.Optional,
// here I tried to use @"(UserManagement|Tools|Settings)"
//as constraint but it takes no effect
constraints: new {controller = "UserManagement|Tools|Settings" }
);
}
catch (Exception e)
{
// here I get InvalidOperationException ""
}
}
Je voudrais limiter les contrôleurs dans la route de SiteSettingsArea mais quand je vais à « localhost/SiteSettings/UserManagemeNT » url Je reçois InvalidOperationException avec le message « Pas de route dans la table de routage correspond à la valeurs fournies ". Je crois que cette URL correspond à la route SiteSettings_Controller mais évidemment je me trompe. Comment pourrais-je limiter les contrôleurs sur la route correctement?