程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET MVC 2: 視圖輸出過程中,Response.Clear不正常工作

ASP.NET MVC 2: 視圖輸出過程中,Response.Clear不正常工作

編輯:關於ASP.NET

在即將發布的Kooboo CMS 2.1.0.0中,將會升級到ASP.NET MVC 2。需要將所 有的Module也同步升級到MVC2,在升級過程中發現MVC2一旦進入View輸出階段後 ,Response.Clear將會不起作用 (Controller執行階段,這個方法仍然正常工作) ,這將會影響Kooboo  CMS Module的正常運行。

在確定是MVC 2引起的問題後,於是就從Response.Clear這個方法著手,它的 代碼邏輯如下:

01 public void Clear()
02 {
03     if  (this.UsingHttpWriter)
04     {
05          this._httpWriter.ClearBuffers();
06     }
07      IIS7WorkerRequest wr = this._wr as IIS7WorkerRequest;
08      if (wr != null)
09     {
10          this.ClearNativeResponse(true, false, wr);
11     }
12 }
13 <font face="Trebuchet MS">

從這段代碼,我們可以發現,ClearBuffer的條件是UsingHttpWriter這個屬性 的值為True,下面是UsingHttpWriter屬性的原型定義:</font>

1 private bool UsingHttpWriter
2 {
3      get
4     {
5         return ((this._httpWriter  != null) && (this._writer == this._httpWriter));
6      }
7 }

在這裡判斷,_httpWriter和_writer變量是否相同。於是我就只能從運行時的 調試來看看這兩個變量的值分別是什麼,下面的截圖分別是_httpWriter, _writer,UsingHttpWriter運行時的值:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved