Legen Sie die Standardaktion (anstelle des Index) für den Controller in ASP.NET MVC 3 fest
Ich habe einen controller namens Dashboard
mit 3 Aktionen: Summary
Details
und Status
keiner von denen nehmen Sie eine ID oder andere Parameter. Ich möchte die URL /Dashboard
weiterleiten an die Summary
Aktion der Dashboard
controller, wie /Dashboard/Summary
tut, aber ich kann nicht herausfinden, den richtigen Weg, um die route. In Global.asax.cs
habe ich folgende:
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" }
);
aber ich bekomme immer ein 404 beim Zugriff auf /Dashboard
. Ich bin mir ziemlich sicher, mir fehlt etwas über das format für die Parameter MapRoute
aber ich weiß nicht, was es ist...
InformationsquelleAutor der Frage Cody | 2012-10-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bewegen Sie Ihre Dashboard-route vor der Default route:
Die Reihenfolge der Routen verändert alles. Beachten Sie auch, die änderungen, die ich gemacht, um die
Dashboard
route. Der erste parameter ist der name der route. Zweite ist die URL, die entsprechen URLs beginnen mitDashboard
und ermöglicht, dass weitere Aktionen in IhremDashboard
controller. Wie Sie sehen können, es wird standardmäßig auf denSummary
Aktion.InformationsquelleAutor der Antwort Gromer
Müssen Sie deklarieren Sie die "Default" catch-all-route Letzte.
InformationsquelleAutor der Antwort tuxedo25
Diesem set default-Aktion für alle Controller asp.net:
InformationsquelleAutor der Antwort Newred