猿问

如何在已安装 umbraco 8 的 ASP.NET MVC 应用程序中创建普通控制器和视图

我想在已经安装了 Umbraco 的 ASP.NET MVC 应用程序中包含普通控制器和视图,如果我是 Umbraco 的新手,请原谅我遗漏了什么。

我试图遵循这个https://24days.in/umbraco-cms/2016/adding-umbraco-to-existing-site/ 但它基于 Umbraco 7,我无法从IApplicationEventHandler.

我尝试直接添加控制器和视图,但路由不起作用,因为 Umbraco 接管了路由。

我想知道如何在 Umbraco 中创建普通的 ASP.NET MVC 控制器、视图以及它们的路由。TIA


DIEA
浏览 104回答 1
1回答

缥缈止盈

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 }        );    }}
随时随地看视频慕课网APP
我要回答