我刚刚开始使用Orchard并为Google Tag Manager编写模块,这意味着我需要在网站中每个页面的body标签的开头添加一个JavaScript代码段。
在我的FilterProvider OnResultExecuting中我有
var context = _workContextAccessor.GetContext();
var tags = context.Layout.Body;
var snippet = Shape.Snippet();
snippet.ContainerId = containerId;
tags.Add(snippet);
其中Shape是DefaultShapeFactory。我知道Shape.Add有第二个位置参数,但我尝试过“:before”,“。5”,“1”但没有成功。它总是在主体的末尾渲染,使用ThemeMachine主题而无需修改。
如果我修改主题并将新区域添加到正文开头的“文档”或“布局”视图中,然后将其形状添加到其中,那么它显然出现在我现在的解决方案中,但这意味着我们'我必须确保我们构建的任何主题都将该区域放在正确的位置。
如何在代码中添加形状并控制其位置?
答案 0 :(得分:1)
此代码有效:
context.Layout.Body.Items.Insert(0, snippet)
由于
,您的代码无效