我們有一個網站(實際上是一個應用程序生成器),其呈現了很多在不同情況下的用戶控件,排除動態呈現的用戶控制從輸出緩存
有一天,經理決定在主頁添加Output cache
,
好的,每件事情都很好,並且請求反應非常快!
但在另一方面,這種緩存有一些麻煩:
假設我們有一個InsertForm User control
那漫天一些實體,以及顯示實體列表ListForm User Control
,所以你可以猜到發生什麼,實體填寫正確,但列表中未顯示,爲什麼?由於輸出緩存。
然後,我們必須從緩存中排除這種用戶控件,一些搜索我們發現Donut Caching後,它似乎非常好,
我們使用Add dynamically server control to Substitution
大多數的用戶控件的實現取決於所有頁面生命週期的,他們中的一些在初始化,一些負載在他們中的一些渲染,所以在大多數情況下,我們有一個佔位符,我們所做的就是:
而且在在PreRender從佔位符刪除所有的控制,以防止重複:
在某些情況下我們有一個很好的結果,但在一些實施再次,我們有麻煩,所有Request
替換爲HttpContext.Current.Request
和所有Session
都轉換爲字段,但在某些情況下使用Wizard
我們仍然有exce注意:Request does not exist in this context
。 而在綁定事件中我們又遇到了麻煩,事件沒有正確綁定,就像嚮導下一步按鈕單擊事件。
所有我填寫我們是在錯誤的方式之後,也許這不是在這種情況下實際,
你覺得呢?
我們還有其他選擇嗎?
還是所有這些麻煩都可以解決?有什麼建議嗎?
請不要隨便發佈鏈接,但實際的代碼/解決方案。 – Charlie