访问Piranha CMS中的全球站点区域

时间:2014-07-31 08:57:00

标签: piranha-cms

我在网站上添加了一个全球网站区域,并填充了一些内容。如何从页面视图和/或布局中阅读此内容?

1 个答案:

答案 0 :(得分:1)

此功能在WebPages和&amp ;;之间略有不同。 MVC,其原因在于,在WebPages(如WebForms)中,Layout-page具有与正在执行的实际页面不同的模型。如果您使用WebPages,只需在布局页面中首先添加以下行:

@inherits Piranha.WebPages.LayoutPage

这将自动加载布局页面模型和所有全局区域。

如果您使用 MVC ,则无法自动完成此操作,因为布局没有模型。您只需在Layout-page中添加以下内容:

@{
  Piranha.Models.PageModel global;

  if (HttpContext.Current.Items["Piranha_CurrentPage"] != null) {
    var current = 
      (Piranha.Models.Page)HttpContext.Current.Items["Piranha_CurrentPage"];

    global = Piranha.Models.PageModel.GetBySite(current.SiteTreeId);
  } else {
    global = Piranha.Models.PageModel.GetBySite(Piranha.Config.SiteTreeId);
  }
}

此代码段加载布局页面:

  1. 如果显示的是页面,则会加载页面包含在
  2. 中的网站树
  3. 如果是帖子,则从当前站点加载站点树。
  4. 希望这能帮到你!

    此致

    /哈坎