У меня есть два маршрута в моей области, один нестандартный и один запасной маршрут по умолчанию, см. Ниже
var dashboardRoute = new DashboardRoute(
ObjectFactory.GetInstance<PathResolver>(),
ObjectFactory.GetInstance<VirtualPathResolver>(),
null);
context.Routes.Add(dashboardRoute);
context.Routes.MapRoute(
"Dashboard_Default", // Route name
"dashboard/{controller}/{action}/{id}", // URL with parameters
new { controller = "pages", action = "index", id = UrlParameter.Optional, area = "Dashboard" } // Parameter defaults
);
когда я добавляю оба маршрута с помощью context.Routes.Add / MapRoute, последний маршрут не работает, но когда я использую context.MapRoute на последнем маршруте, он работает, но GetVirtualPath в моем пользовательском маршруте не используется для ссылок действий. Я думал, что MapRoute был просто расширением для context.Routes.Add? Каков наилучший способ отладки маршрутов? Я использовал Phil Haacks route debug, но он не работает с моим пользовательским маршрутом, есть ли другой способ отладки маршрутов?
Мне действительно нужна помощь.
Мои регистрации маршрутов в области моей панели выглядят так -
var dashboardRoute = new PagesRoute(
ObjectFactory.GetInstance<PathResolver>(),
ObjectFactory.GetInstance<VirtualPathResolver>(),
null);
context.Routes.Add("Dashboard", dashboardRoute);
context.MapRoute(
"Dashboard_default",
"dashboard/{controller}/{action}/{id}",
new { controller = "dashboard", action = "index", id = UrlParameter.Optional }
);
PageRoute - это пользовательский маршрут, и вы можете найти код здесь http://bit.ly/er6HPn
При активных маршрутах такая ссылка прекрасно работает как Html.ActionLink («Управление ролями», «manageroles», «account»), но когда у меня есть ссылка, которая должна работать с моим пользовательским маршрутом, таким как Html.ActionLink (page.MetaData. Имя, "edit", "pages", new {document = page}, null) результат равен http://stormbreaker.local/dashboard/pages/edit?document=Stormbreaker.Example.Models.Page,, это означает, что GetVirtualPath в моем PageRoute никогда не используется. Может кто-нибудь объяснить мне, как и как я мог это исправить?