0

我们目前正在开发包含纯 MVC 项目的 .NET 解决方案。一开始,还好。但是,内容似乎经常更改。

我认为最好将一些块内容和静态页面制作成CMS。它们可以是 CMS 块的帖子列表和静态页面的 CMS 页面。

我的团队选择 Umbraco。最大的困难是将CMS系统集成到区块中。

我尝试按照本教程进行操作:https ://24days.in/umbraco-cms/2016/adding-umbraco-to-existing-site/ 。但是,我遇到了一些问题,例如:

  1. 移动控制器后不知道如何重写路由
  2. 系统总是告诉我这个错误:System.Net.Http.Formatting -> 我试图安装,但它似乎不是一个现有的包。
  3. 该教程已过时。项目的结构似乎发生了变化。
  4. 源文件不见了。

不知道有没有针对这种情况的推荐和新教程。我可能会坚持安装依赖项。希望大家能给我一些建议,这样我才能继续下去。

4

2 回答 2

1
  1. 您无需付费即可获得 Umbraco 的许可证,它是免费的开源软件
  2. V8 上周才发布,一个全新的版本,重写了很多
  3. 那篇文章与 V7 相关,因此您应该期望它能够工作,而不是 v8
  4. 祝你好运 :-)
于 2019-03-04T09:44:43.183 回答
0
  1. 该教程已过时。项目的结构似乎发生了变化。

Umbraco v8 仍然很新,正如您所说,大多数文档都已过时。您可以在此处查看文档的当前状态。

除此之外,您可以从 Git 下载源代码并检查事情是如何完成的,但这可能非常耗时。

  1. 移动控制器后不知道如何重写路由

如果我理解正确,您希望拥有自己的控制器,拥有自己的路线。

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 }
        );
    }
}
于 2019-03-12T12:03:09.077 回答