В Umbraco8 нет IApplicationEventHandler
, они заменили его на Пользовательские композиторы
Umbraco имеет свою собственную реализацию global.asax и, как вы сказали, перезаписывает маршруты по умолчанию.Обычный класс маршрутизации не выполняется, вы должны добавить свои маршруты при запуске приложения.
Мне удалось сделать это с помощью создания User Composer .Пользовательские композиторы сочиняют после основных композиторов и перед финальным композитором.
(Ниже я создаю IComposer
, но IUserComposer
также должен работать.)
public class ApplicationEventComposer : IComposer
{
public void Compose(Composition composition)
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
В этомВы можете зарегистрировать свой собственный RouteConfig, Bundles и т. д. Просто будьте осторожны, легко испортить маршруты Umbraco ...
Вот пример добавления нового контроллера под названием TestController:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "Test",
url: "Test/{action}/{id}",
defaults: new { controller = "Test", action = "Index", id = UrlParameter.Optional }
);
}
}