我有一个返回复杂JSON对象的方法。这是一个繁重的处理方法,我试图将它存储在缓存中并保留在那里,直到对它的对象进行修改。
[HttpPost]
[OutputCache(Duration=50, Location = OutputCacheLocation.Client, VaryByParam="none", NoStore = false)]
public ActionResult CacheTest()
{
//retrieves data from database
var data = DBContext.GetUserLog();
return Json(new { userLog = data});
}
设置Location = OutputCacheLocation.Client
和VaryByParam = 'none'
无效。如果我设置Location = OutputCacheLocation.ServerAndClient
,则响应被正确缓存。
OutputCache没有在客户端存储JSON信息的任何原因?
答案 0 :(得分:2)
IIRC POST请求未缓存在客户端上。当您在服务器上修改您似乎没有做的状态时,将使用此动词。如果要从服务器返回一些值而不修改状态,请改用GET。