检查Usercontrol先前是否已加载到页面上

时间:2016-04-11 19:20:47

标签: c# asp.net sitecore

在.Net用户控件中,是否有办法检查控件是否先前已加载到页面上?

我考虑过尝试将变量存储在.Net会话变量中,以便在加载时跟踪每个控件,然后在页面预渲染事件中处理变量。在我看来,必须有一个更好的方法来实现这一目标。

我需要这样做的原因是因为usercontrols作为sitecore中的子布局加载,我不知道内容作者可能将控件添加到页面的次数。如果是第一次将控件调用到页面,我需要为第三方服务添加一个div标签。如果div标签不止一次出现,那么第三方服务就是gawks。

1 个答案:

答案 0 :(得分:5)

只需使用HttpContext.Current.Items来保存有关已加载控件的信息。

如名称所示,HttpContext.Current仅适用于单个Web请求。无需担心处置或清除旧数据。

if (HttpContext.Current.Items["I was here"] == null) 
{
    // do custom div magic
    HttpContext.Current.Items["I was here"] = true;
}