HtmlHeaderExtensions 允许插件在响应中插入其他标头。它不允许覆盖或编辑 HTML 标头中的现有标记。
创建 HtmlHeaderExtension
若要创建 HtmlHeaderExtension,请实现 IHtmlHeaderExtension 接口(这需要引用 Limyee.Components.dll)。IHtmlHeaderExtension 接口扩展了 IPlugin 以添加支持扩展 HTML 标头。
GetHeader 方法用于输出标头 HTML。它采用一个具有 Page 和 Modal 值的 RenderTarget 参数,指定响应是针对标准页面还是模态页面。在我们的示例中,我们希望通过向网站横幅添加边框来更改网站横幅,因此 GetHeader 方法将返回一个 style 标记来实现此更改。
public string GetHeader(RenderTarget target) { return "<style>.banner.site { border: 3px solid red !important; }</style>"; }
接下来,我们需要确定标头是否可缓存,以及缓存是否应按用户缓存还是全部用户使用相同的缓存。在我们的示例中,输出始终是相同的,因此我们可以缓存它,并且所有用户都可以使用相同的缓存。IsCacheable 和 VaryCacheByUser 将按如下方式实现:
public bool IsCacheable { get { return true; } } public bool VaryCacheByUser { get { return false; } }
下面是我们的标头扩展示例的完整源代码:
using Limyee.Extensibility.UI.Version1; namespace Limyee.Examples { public class SampleHeaderExtension : IHtmlHeaderExtension { #region IHtmlHeaderExtension Members public string GetHeader(RenderTarget target) { return "<style>.banner.site { border: 3px solid red !important; }</style>"; } public bool IsCacheable { get { return true; } } public bool VaryCacheByUser { get { return false; } } #endregion #region IPlugin Members public string Description { get { return "添加示例样式标记到页面响应"; } } public void Initialize() { } public string Name { get { return "标头扩展示例"; } } #endregion } }
将此示例部署到 Limyee 电商平台并启用后,您应该会看到站点横幅周围的边框: