将现有的ASP.NET MVC应用程序与Orchard CMS集成

38
我有 Orchard CMS,并希望将我的 MVC 网站与之集成。请问有人可以告诉我如何做吗?
1个回答

93
这取决于你的MVC应用程序有多复杂,但在大多数情况下都是直截了当的。最简单的方法是将现有站点包装成Orchard模块。编写模块的方法在此处有所描述。以下是必要的步骤:
  1. 将您的站点复制到~/Orchard.Web/Modules的子目录中,并将.csproj文件与之一起放置,以便.csproj文件位于应用程序根目录下(例如:~/Orchard.Web/Modules/MyApplication/MyApplication.csproj)
  2. 在您的应用程序根目录下创建Module.txt清单文件。该小文件描述了您的应用程序-其语法在此处有所描述
  3. 设置适当的路由,以便可以访问现有控制器的操作。这也在上述文章中有所描述。默认情况下,您的应用程序URL将类似于/MyApplication/Controller/Action-您可以自由更改它。但要小心,不要干扰现有路由,例如/Admin,/Users等等。您指定的路由具有更高的优先级,并将覆盖每个现有路由。顺便说一句-如有必要,区域名称将是您的应用程序名称(例如MyApplication)。
  4. 运行Orchard并在Modules/Features管理菜单中启用您的应用程序
  5. 将必要的更改添加到web.config文件中。

请记住,Orchard基于ASP.NET MVC 4并使用Razor视图引擎。如果您使用其他视图引擎,则必须在web.config文件中适当地指定它。


4
您能否就如何处理用户认证并将旧网站添加进来发表评论?(它们可以并存吗?) - ccook
@PiotrSzmyd,步骤是正确的。但我遇到了一个小问题。 _Layout.cshtml - 这是MVC部分视图的布局页面。但我无法在每个视图文件中提及_Layout文件的路径。 在MVC中,我们可以这样写:Layout =“~/Views/Shared/_Layout.cshtml”; 但似乎orchard误解了名称。它将整个字符串视为文件名!当我写:Layout =“_Layout.cshtml”; Orchard没有查看Views / Shared文件夹。它期望_Layout.cshtml文件存在于与视图文件相同的文件夹中! 有什么解决方法吗? - Rahatur
16
我希望将Orchard CMS集成到我的应用程序中,而不是将我的应用程序集成到Orchard CMS中。 - Edward Olamisan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接