Ich bin neu in ASP.NET MVC3.Falsche Route wird aufgenommen und ActionLink erzeugt falschen Hyperlink
Ich habe einige Routen in Global.asax konfiguriert, gegen die ich einige Hyperlinks mit der @ Html.ActionLink Helper-Methode generieren.
Alle Links sind immer mit Ausnahme der obersten man im folgenden Code korrekt wiedergegeben:
Global.asax
routes.MapRoute(
null,
"Section/{Page}/{SubPage}/{DetailPageName}",
new { controller = "Base" }
);
routes.MapRoute(
null,
"Section/{Page}/{SubPage}",
new { controller = "Base", action = "SubPage" }
);
routes.MapRoute(
null,
"Section/{Page}",
new { controller ="Base", action="LandingPage"}
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}", // URL with parameters
new { controller = "Base", action = "Index" } // Parameter defaults
);
Action Code
@Html.ActionLink(@subPages.LinkedPageName, "DetailPage",
new {
Controller = "Base",
Page = @ViewBag.PageName,
SubPage = @Model.SubPageName,
DetailPageName = subPages.LinkedPageName
})
Die oben sollte die oberste Route wählen zB:
routes.MapRoute(
null,
"Section/{Page}/{SubPage}/{DetailPageName}",
new { controller = "Base" }
);
Aber es ist die Standardroute auswählen!
Ich habe festgestellt, dass auf Ihrer ersten Route keine "Aktion" definiert ist. – Jacob