为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
DIEA 2023-05-14 16:51:04
我想在已经安装了 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
查看完整描述

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 }

        );

    }

}


查看完整回答
反对 回复 2023-05-14
  • 1 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信