2009-11-10 59 views
0

我正在使用CMS,它允许您开发自己的自定义控件,它们在运行时动态包含。所以我有一个自定义控件,它改变了一个数据源(NHibernate缓存),并且由于我在CMS已经从缓存中读取这些数据的过程中,我需要以某种方式重新开始处理页面,以便CMS拿起新的缓存数据。如何获取页面以重新启动C#中的处理?

我知道这样做可能有更优雅的方式,但是因为我无法直接更改CMS内核持有的数据,一旦它从缓存中读取并且由于控件被加载的方式CMS我没有选择(我认为)。

我已经尝试对请求的URL做一个Response.Redirect(),但大多数浏览器会认为这是一个无限循环并终止请求。任何其他想法?

回答

1

您可以从您最初的页面做到这一点:

Response.Clear(); 
Server.Transfer (Request.Url.PathAndQuery, true); 

第二个参数通过了初始页面QueryString和Form值。

+0

非常感谢!它没有立即生效,我会在此为其他愿意跟随我的人留言。 Request.Url.AbsolutePath在我的特定实例中不起作用,因为CMS使用友好的URL,因此请求的文件在物理上不存在于服务器上。为了解决这个问题,我使用了 Request.Url.PathAndQuery,它请求友好URL映射到的文件。再次感谢Gonzalo – 2009-11-10 04:13:26

+0

对。我已经更新了答案。 – Gonzalo 2009-11-10 04:22:29

+0

甜美如bruv :) – 2009-11-10 04:40:19