piranha-cms - 现有 MVC 5 站点上的 Piranha CMS

标签 piranha-cms

我是 Piranha CMS(以及一般的任何 CMS)的新手。我有一个关于将系统集成到现有 MVC 5 应用程序的问题。这是我到目前为止所做的:

  • 我已按照“入门”部分中的步骤进行操作
  • 我已经创建了数据库并设置了连接字符串
  • 我已经创建了admin用户,可以登录管理界面了

我遇到的问题是了解如何将我现有的页面引入管理器以及如何将它们公开给用户进行编辑。我确实查看了文档,但找不到专门针对该主题的任何内容。

非常感谢任何帮助。

谢谢。 丹尼尔·D。

最佳答案

从 Piranha CMS 获取数据到您现有的应用程序非常简单。

<强>1。页面类型

首先,查看您需要创建的不同页面类型(即您需要的不同类型的页面结构)并通过管理器界面或代码创建它们。您可以在此处找到文档:

<强>2。创建您的页面

接下来,只需在管理器中创建您需要的页面并添加内容即可。如果您想禁止用户添加页面,您以后可以随时删除“添加”按钮,方法是将 CSS 注入(inject)管理器或自定义它。

<强>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。获取数据

现在填充数据只是调用一个方法。您可以通过 idpermalink 访问它。例如,让我们通过永久链接访问它,假设我们有一个带有永久链接 about-us 的页面。只需将以下内容添加到您的 Controller :

// 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 配置为在被动模式 下运行。您可以在此处找到有关配置的文档:

我希望这可以帮助您入门!

问候

/哈坎

关于piranha-cms - 现有 MVC 5 站点上的 Piranha CMS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29485406/

相关文章:

c# - 处理网站和 cms 身份验证的用户身份

piranha-cms - Piranha CMS - 自定义 block 无法保存

javascript - Tinymce 添加 &nbsp

piranha-cms - 将项目添加到 Piranha CMS 中的管理器菜单

asp.net-core - Piranha CMS 本地化

asp.net-mvc - 让 Piranha CMS 与 MVC 配合使用

asp.net - 安装后无法登录 PiranhaCMS