2012-06-12 44 views
0

我有一個web表單後面的代碼如下:的VaryByParam不會出現工作

Response.Clear(); 
Response.ContentType = "application/json; charset=utf-8"; 

int _pGID = base.GetParamAsInt("PGID"); 

if (_pGID > 0) 
{ 
    Response.Write(...); 
} 
else 
{ 
    Response.Write(...); 
} 

Response.End(); 

和以下標記:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PG.aspx.cs" 
    Inherits="PG" %> 

<%@ OutputCache Duration="60" VaryByParam="PGID" %> 

的問題是,在Page_Load事件每次請求頁面時都會觸發,即使QueryString的「PGID」參數相同。

我想知道如何使用VaryByParam屬性?

+0

你正在手動處理頁面渲染到目前爲止我看到你的代碼。我的猜測(只是猜測)是因爲你沒有讓asp.net頁面遵循正常流程(你手動結束調用Response.End()的請求),輸出緩存對於頁面不是活動的。嘗試在沒有手動響應處理的情況下測試。 –

回答

0

從代碼中休息並做了一些更多的測試之後,似乎對Response.End()的調用導致了問題。從一些文章Response.Flush()也會導致同樣的問題。