我認爲這將是一件簡單的事情,但它讓我瘋狂。動作MVC輸出緩存不在服務器緩存
public ViewResult Index(string parameter) {...}
之前,我只是添加了以下...
[OutputCache(Duration = 300)]
但它不緩存它,我把一個斷點在動作內部調試器和它擊中它的每一個我去那個頁面。如果我將Location
參數設置爲Client
,但它確實有效,但我希望它是基於服務器的。我必須在其他地方啓用緩存才能工作嗎?
我認爲這將是一件簡單的事情,但它讓我瘋狂。動作MVC輸出緩存不在服務器緩存
public ViewResult Index(string parameter) {...}
之前,我只是添加了以下...
[OutputCache(Duration = 300)]
但它不緩存它,我把一個斷點在動作內部調試器和它擊中它的每一個我去那個頁面。如果我將Location
參數設置爲Client
,但它確實有效,但我希望它是基於服務器的。我必須在其他地方啓用緩存才能工作嗎?
發現問題。基本控制器在OnActionExecuting
中設置了一個cookie,並且我發現設置cookie的頁面沒有存儲在輸出緩存中,所以基本上頁面不會被緩存,無論[OutputCache]
指令如何。
謝謝!動作過濾器導致的同一問題。 –
你做了什麼來解決你的問題?你是否保留了動作過濾器,如果是,你還在追求緩存嗎? – cal5barton
我有同樣的問題,我解決了這個問題,通過修正參數VaryByParam的確切參數。
[OutputCache(Duration=120, VaryByParam ="argument1")]
做的,而不是的VaryByParam該= 「*」
如果它的事項,在'parameter'來自路由器,如'routes.MapRoute(NULL, 「{}參數」,新{controller =「mycontroller」,action =「index」})' – Rodolfo