Ich habe einen Controller namens Dashboard
mit 3 Aktionen: Summary
, Details
und Status
, von denen keine eine ID oder andere Parameter annimmt. Ich möchte, dass die URL /Dashboard
an die Summary
-Aktion des Dashboard
-Controllers weiterleitet, wie /Dashboard/Summary
, aber ich kann nicht die richtige Methode zum Hinzufügen der Route ermitteln. In Global.asax.cs
habe ich Folgendes:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
routes.MapRoute(
"/Dashboard",
"Dashboard",
new { controller = "Dashboard", action = "Summary" }
);
Für den zweiten Teil habe ich auch versucht:
routes.MapRoute(
"/Dashboard",
"{controller}",
new { controller = "Dashboard", action = "Summary" }
);
und
routes.MapRoute(
"/Dashboard",
"{controller}",
new { action = "Summary" }
);
ich bekomme jedoch immer eine 404, wenn ich auf /Dashboard
zugreifen möchte. Ich bin mir ziemlich sicher, dass mir etwas über das Format für die Parameter von MapRoute
fehlt, aber ich weiß nicht, was es ist ...
Verschieben Sie Ihre Dashboard-Route vor die Standardroute:
routes.MapRoute(
"Dashboard",
"Dashboard/{action}",
new { controller = "Dashboard", action = "Summary" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
Die Reihenfolge der Routen ändert alles. Beachten Sie auch die Änderungen, die ich an der Dashboard
-Route vorgenommen habe. Der erste Parameter ist der Name der Route. Zweitens ist die URL die URLs, die mit Dashboard
beginnen, und andere Aktionen in Ihrem Dashboard
-Controller zulässt. Wie Sie sehen, wird standardmäßig die Aktion Summary
verwendet.
Sie müssen die Catch-All-Route "Default" zuletzt angeben.
Dies setzt die Standardaktion für jeden Controller asp.net:
routes.MapRoute("Dashboard", "{controller}/{action}",
defaults: new { controller = "Dashboard", action = "Summary" });