0

我正在尝试将 Piranha CMS 集成到现有的 ASP.NET MVC 网站中。我已经成功地将我的 Web 应用程序转换为使用 .net 4.5 MVC5(最初是 .net 4.0、MVC4)。我已经添加了PiranhaCMS.Mvc传递添加包的PiranhaCMS.Core包。

入门指南声明将passiveMode 设置为true。但我更喜欢同时使用我的和 Piranha CMS 路由机制。因此,我将其设置passiveMode为 false。我的 Web.config 如下:

<piranha>
    <settings>
      <managerNamespaces value="" />
      <disableManager value="false" />
      <disableTypeBuilder value="false" />
      <passiveMode value="false" />
      <prefixlessPermalinks value="false" />
    </settings>
    <providers>
      <mediaProvider value="Piranha.IO.LocalMediaProvider, Piranha" />
      <mediaCacheProvider value="Piranha.IO.LocalMediaCacheProvider, Piranha" />
      <cacheProvider value="Piranha.Cache.WebCacheProvider, Piranha" />
      <logProvider value="Piranha.Log.LocalLogProvider, Piranha" />
    </providers>
</piranha>

我的 RouteConfig.cs 包含以下内容:

routes.MapRoute("Default", "{controller}/{action}/{id}",
    new {controller = "Home", action = "Index", id = UrlParameter.Optional},
    new[] {"xxx.xxx.xxx.Controllers"}
    ).DataTokens["UseNamespaceFallback"] = false;

我可以访问“ http://dev.test.com/manager ”上的管理器控制台。但是当我尝试访问现有的主要网站“ http://dev.test.com ”时,我收到了一个 404 错误,其中包含 Requested URL: /page

我不知道 /page 是什么。我还尝试在管理器控制台上创建一个页面,其永久链接为“ http://dev.test.com/home/enews ”。访问后者时,它似乎被重定向了,我得到与上面相同的 404 错误,请求的 URL:/page。

请注意,当我将passiveMode 设置为true 时,我可以访问我现有的主要网站“ http://dev.test.com ”。我真的很期待将 Piranha CMS 集成到我现有的应用程序中,并希望得到某人的指导。

4

1 回答 1

1

当您使用模板项目(即 PiranhaCMSMvc)创建应用程序时,您会在项目中获得两个基本的控制器模板,一个用于显示页面,一个用于显示帖子。当您简单地添加 Piranha.Mvc 包时,您不会获得任何模板文件。

当您导航到http://dev.test.com时,Piranha CMS 路由会找到起始页面,然后将其路由到~/page,在默认模板中将是 PageController。由于找不到此控制器,您会收到 404 错误。

最简单的入门方法是使用 PiranhaCMSMvc NuGet 包创建一个新的空白应用程序,并查看包含的控制器。然后,您可以将它们复制到您现有的应用程序中。

此致

哈坎

于 2014-11-12T11:10:10.883 回答