2010-07-01 47 views
1

在我正在編寫的ASP.NET MVC網站中,我構建了一個通過HttpModule following this tutorial路由到的通用錯誤操作。在這個Action中,我將返回一個視圖,該視圖對應於應用於HttpModule中的響應的狀態碼(在這樣做之後,模塊將請求轉移到有問題的Action中)。ASP.NET MVC:通過HTTP狀態代碼在OutputCache屬性中過濾/變化

這一切都很好,除了我想要實現緩存。我不想使用OutputCache屬性而沒有過濾/改變,因爲那意味着頁面將被緩存一次。我希望爲每個可能的狀態代碼緩存頁面一次。

是否有可能以某種方式過濾/改變OutputCacheAttribute的屬性,以便每個Response.StatusCode被分開緩存?

回答

0

您目前如何處理路由到您的錯誤操作,例如,你可以有:

/Errors/404 
/Errors/500 

所有指向完全相同的動作,並緩存會爲你,因爲它們是獨立的URL進行處理,並在應用的OutputCache屬性的單一時間的一般錯誤動作:

[OutputCache] 
public ActionResult DisplayError(int errorCode) { 
    return View(errorCode.ToString()); 
} 

會這樣嗎?