【发布时间】:2014-09-23 03:39:27
【问题描述】:
我已向我的站点添加了一个全局站点区域,并在其中填充了一些内容。如何从页面视图和/或布局中读取此内容?
【问题讨论】:
标签: piranha-cms
我已向我的站点添加了一个全局站点区域,并在其中填充了一些内容。如何从页面视图和/或布局中读取此内容?
【问题讨论】:
标签: piranha-cms
此功能在 WebPages 和 MVC 之间略有不同,原因是在 WebPages(如 WebForms)中,布局页面的模型与正在执行的实际页面不同。如果您使用网页,您只需在布局页面中首先添加以下行:
@inherits Piranha.WebPages.LayoutPage
这将自动加载布局页面模型和所有全局区域。
如果您使用的是 MVC,则无法自动完成,因为 Layout 没有模型。您可以在布局页面中简单地添加以下内容:
@{
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);
}
}
这个 sn-p 从以下位置加载布局页面:
希望对您有所帮助!
问候
/哈坎
【讨论】: