HtmlHeaderExtensions 允许插件在响应中插入其他标头。它不允许覆盖或编辑 HTML 标头中的现有标记。
若要创建 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 电商平台并启用后,您应该会看到站点横幅周围的边框: