我有一个控制器 ActionResult,它返回我想要缓存的 JSON。经过一番研究,我发现 OutputCache 属性可以做到这一点,但一直无法成功使用它。这是我正在使用它的方法调用:
[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(内部服务器错误)。没有这个属性,它工作得很好。
我做错了什么,还是有更好的建议可以用于这种情况?
谢谢!