Piranha CMS的ASP.NET MVC路由问题

时间:2014-11-12 06:24:06

标签: asp.net-mvc piranha-cms

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

getting-started指南声明将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错误:/ page

我不知道什么是/ page。此外,我尝试在Manager控制台上创建一个页面,其永久链接为“http://dev.test.com/home/enews”。当访问后者时,它似乎被重定向,并且我使用请求的URL获取与上面相同的404错误:/ page。

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

1 个答案:

答案 0 :(得分:1)

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

导航到 http://dev.test.com 时会发生什么?Piranha CMS路由找到起始页,然后将其路由到〜/ page 默认模板是PageController。由于找不到此控制器,因此会出现404错误。

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

祝你好运

哈坎