现有 MVC 5 站点上的 Piranha CMS
Posted
技术标签:
【中文标题】现有 MVC 5 站点上的 Piranha CMS【英文标题】:Piranha CMS on existing MVC 5 site 【发布时间】:2015-06-11 16:26:18 【问题描述】:我是 Piranha CMS(以及一般任何 CMS)的新手。我有一个关于将系统集成到现有 MVC 5 应用程序的问题。这是我到目前为止所做的:
我已按照入门部分中的步骤进行操作 我已经创建了数据库并设置了连接字符串 我已经创建了admin用户,可以登录管理界面了我遇到的麻烦是了解如何将现有页面带入管理器以及如何将它们公开给用户进行编辑。我确实查看了文档,但找不到专门针对此主题的任何内容。
非常感谢任何帮助。
谢谢。 丹尼尔 D.
【问题讨论】:
您好!您能否阐明您想如何在您的应用程序中使用 Piranha CMS。您是在将您的应用程序“转换”为基于 CMS 的网络,还是希望现有应用程序能够控制结构和页面并仅使用 CMS 让客户编辑文本等? 嗨哈坎,谢谢您的回复。我希望应用程序保持控制,但我希望允许用户管理某些页面上的某些内容。谢谢。 顺便说一句,我喜欢你的产品。我喜欢文档和网站。问题是我刚刚开始使用 CMS,我仍在努力掌握基础知识。 【参考方案1】:将 Piranha CMS 中的数据导入现有应用程序非常简单。
1.页面类型
首先,查看您需要创建的不同页面类型(即您需要的不同类型的页面结构)并从管理器界面或通过代码创建它们。您可以在此处找到文档:
http://piranhacms.org/docs/pages/page-types http://piranhacms.org/docs/extend/page-post-types2。创建您的页面
接下来,只需在管理器中创建您需要的页面并添加内容即可。如果您想禁止用户添加页面,您可以随时删除“添加”按钮,方法是将 CSS 注入管理器或自定义它。
3.将数据添加到模型中
这里有两个选择,要么让你的模型从 PageModel继承,要么只是将带有 CMS 数据的新属性添加到现有模型中。
// With inheritance
public class MyModel : Piranha.Models.PageModel
...
// With the CMS data in a property
public class MyModel
public Piranha.Models.PageModel CMSData get; set;
4.获取数据
现在填充数据只是调用一个方法。您可以通过id
或permalink
访问它。例如,我们通过永久链接访问它,假设我们有一个带有永久链接about-us
的页面。只需将以下内容添加到您的控制器:
// With inheritance
public class MyController : Controller
public ActionResult MyAction()
// Get the CMS-data
var model = Piranha.Models.PageModel.GetByPermalink<MyModel>("about-us");
// Fill the model with your custom data
...
// With the CMS data in a property
public class MyController : Controller
public ActionResult MyAction()
// Create and fill your custom model
var model = new MyModel();
...
// Get the CMS-data
var model.CMSData = Piranha.Models.PageModel.GetByPermalink("about-us");
5.配置
请注意,如果您希望您的应用程序控制路由,您应该将 Piranha CMS 配置为在被动模式下运行。您可以在此处找到有关配置的文档:
http://piranhacms.org/docs/api-reference/configuration我希望这可以帮助您入门!
问候
/哈坎
【讨论】:
以上是关于现有 MVC 5 站点上的 Piranha CMS的主要内容,如果未能解决你的问题,请参考以下文章