Kentico 利用页面级事件
Kentico Tapping into Page Level Events
我们正在 Kentico 以外的数据库中创建网络事件。然后将这些网络事件用于企业报告。我需要在 Kentico 项目中实现相同的功能。
是否有一个事件可以在页面加载后触发,以便我可以在登录后使用页面名称和用户信息创建我的 Web 事件。
我过去也看到过,对于事件,Request 和 Session 对象不可用。但是,HTTPContext.Current 可用。我需要 Request 和 Session 对象。
我们正在使用 Kentico 版本 7.0.92 并且有一个门户模板 站点。
现在,我不想使用门户模板页面来创建事件,因为此代码会针对每个页面请求执行多次。
基本上,我对 PageName、Session 和 Request 对象感兴趣。
我环顾四周 Kentico 7 documentation。看起来我们有 CMSRequestEvents,但未能找到示例代码。
更新:
看起来缺少的部分是 CMSContext class。现在只是试图为 CMSRequestEvents 找到正确的事件,其中我有可用的 Session 对象。
我建议按以下方式修改 Kentico\CMS\Global.asax.cs
:
public override void Init()
{
base.Init();
CMSRequestEvents.AcquireRequestState.After += AcquireRequestState_After;
}
void AcquireRequestState_After(object sender, EventArgs e)
{
// Do your stuff...
}
到那个时候 HttpContext.Current.Session
should already be initialized。可以从 HttpContext.Current.Request
中检索页面名称,该名称永远不应为空。
我们正在 Kentico 以外的数据库中创建网络事件。然后将这些网络事件用于企业报告。我需要在 Kentico 项目中实现相同的功能。
是否有一个事件可以在页面加载后触发,以便我可以在登录后使用页面名称和用户信息创建我的 Web 事件。
我过去也看到过,对于事件,Request 和 Session 对象不可用。但是,HTTPContext.Current 可用。我需要 Request 和 Session 对象。
我们正在使用 Kentico 版本 7.0.92 并且有一个门户模板 站点。
现在,我不想使用门户模板页面来创建事件,因为此代码会针对每个页面请求执行多次。
基本上,我对 PageName、Session 和 Request 对象感兴趣。
我环顾四周 Kentico 7 documentation。看起来我们有 CMSRequestEvents,但未能找到示例代码。
更新: 看起来缺少的部分是 CMSContext class。现在只是试图为 CMSRequestEvents 找到正确的事件,其中我有可用的 Session 对象。
我建议按以下方式修改 Kentico\CMS\Global.asax.cs
:
public override void Init()
{
base.Init();
CMSRequestEvents.AcquireRequestState.After += AcquireRequestState_After;
}
void AcquireRequestState_After(object sender, EventArgs e)
{
// Do your stuff...
}
到那个时候 HttpContext.Current.Session
should already be initialized。可以从 HttpContext.Current.Request
中检索页面名称,该名称永远不应为空。