1 回答

TA貢獻2041條經驗 獲得超4個贊
Umbraco8 中沒有,他們用User ComposersIApplicationEventHandler
代替了它
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 }
? ? ? ? );
? ? }
}
- 1 回答
- 0 關注
- 135 瀏覽
添加回答
舉報