我正在尝试将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整合到我现有的应用程序中,并希望得到某人的指导。
答案 0 :(得分:1)
使用模板项目(即PiranhaCMSMvc)创建应用程序时,项目中会有两个基本的控制器模板,一个用于显示页面,另一个用于显示帖子。当您只是添加Piranha.Mvc包时,您不会获得任何模板文件。
导航到 http://dev.test.com 时会发生什么?Piranha CMS路由找到起始页,然后将其路由到〜/ page 默认模板是PageController。由于找不到此控制器,因此会出现404错误。
最简单的入门方法是使用PiranhaCMSMvc NuGet包创建一个新的空白应用程序,并查看包含的控制器。然后,您可以将它们复制到现有的应用程序中。
祝你好运
哈坎