在.Net用户控件中,是否有办法检查控件是否先前已加载到页面上?
我考虑过尝试将变量存储在.Net会话变量中,以便在加载时跟踪每个控件,然后在页面预渲染事件中处理变量。在我看来,必须有一个更好的方法来实现这一目标。
我需要这样做的原因是因为usercontrols作为sitecore中的子布局加载,我不知道内容作者可能将控件添加到页面的次数。如果是第一次将控件调用到页面,我需要为第三方服务添加一个div标签。如果div标签不止一次出现,那么第三方服务就是gawks。
答案 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;
}