1
我有一個控制器ActionResult,它返回我想要緩存的JSON。在做了一些研究後,我發現OutputCache屬性可以做到這一點,但一直未能成功使用它。下面是我使用它的方法調用:如何緩存返回Json的MVC3 ActionResult?
[OutputCache(Duration = 86400, VaryByParam = "none")]
public ActionResult GetCategories()
{
var request = (HttpWebRequest)WebRequest.Create(EXTERNAL API CALL);
request.Accept = "application/json; charset=utf-8";
var response = (HttpWebResponse)request.GetResponse();
string result;
using (var sr = new StreamReader(response.GetResponseStream()))
{
result = sr.ReadToEnd();
}
return Json(result);
}
這種方法使得一個API調用外部資源,讀取結果,然後返回結果爲JSON到一個AJAX調用。使用OutputCacheAttribute時,ajax調用將返回500(內部服務器錯誤)。沒有這個屬性,它工作得很好。
我做錯了什麼,還是有更好的建議,我應該用這種情況?
謝謝!
沒關係,+1。我有*正是*這個問題與返回一個圖像的控制器方法。 CachProfile是默認值,並且緩存控件未在web.config中使用。你指出了正確的方法。 –