У меня есть два маршрута в моем районе, один пользовательский и один резервный маршрут по умолчанию, см. Ниже
var dashboardRoute = new DashboardRoute(
ObjectFactory.GetInstance(),
ObjectFactory.GetInstance(),
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. Добавлять? Как лучше всего отлаживать маршруты? Я использовал отладку маршрута Phil Haacks , но она не работает с моим настраиваемым маршрутом, есть ли другой способ отладки маршрутов?
Мне действительно нужна помощь. Мои регистрации маршрутов в области моей панели инструментов выглядят так:
var dashboardRoute = new PagesRoute(
ObjectFactory.GetInstance(),
ObjectFactory.GetInstance(),
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 («Управление ролями», «менеджеры», «учетная запись»), но когда у меня есть ссылка, которая должна работать с моим настраиваемым маршрутом, например Html.ActionLink (page.MetaData. Name, "edit", "pages", new {document = page}, null) результат будет http: //stormbreaker.local/dashboard/pages/edit? Document = Stormbreaker.Example.Models.Page , это означает, что GetVirtualPath в моем PageRoute никогда не используется. Может ли кто-нибудь объяснить мне способ и как я могу это исправить?