【问题标题】:Caching a Partial View Asp.net MVC 5缓存部分视图 Asp.net MVC 5
【发布时间】:2014-06-02 09:59:26
【问题描述】:

我正在使用 jQuery Load 调用我的局部视图

我尝试使用[OutputCache(Duration = 10, VaryByParam = "*")],但结果相同 我得到 200 Ok 而不是 304 not modified

setInterval(function () {
    $("#ETLjobs").load('@Url.Action("indexp","JobsETL")');
}, 5000);

我的控制器是

[DonutOutputCache(Duration = 500)]
public ActionResult Indexp()
{
    var x = db.BIOGetETLJobs();
    var  y = from xx in x
                where xx.etat!="Completed"
                select xx;
    return PartialView(y);
}

顺便说一下如何将加载动作改为长轮询??

现金实际上在工作,我得到 200 OK(来自缓存)

【问题讨论】:

  • 你做过类似 $.ajaxSetup({cache:false}); 的事情吗? ?我相信这将阻止您的缓存工作,因为每个请求都是唯一的
  • 不,cashe 适用于结果类型 application/json 但不适用于 Text/html

标签: c# jquery asp.net asp.net-mvc asp.net-mvc-4


【解决方案1】:

使用 ASP.NET 输出缓存时,您将始终获得 200 OK,即使内容是从服务器的输出缓存提供的。这是预期的行为。

服务器不会尝试确定您在本地缓存的内容是否比服务器输出缓存中的内容旧,因此不会返回 304 Not Modified。

【讨论】:

  • 是的,我想通了,但它返回 304 未修改和 200 OK(来自缓存),我不明白为什么不返回相同的响应
  • “它返回 304 未修改和 200 OK(来自缓存)”是什么意思?什么时候返回什么?
  • 一个部分视图 304 未修改,另一个是 200 OK(来自缓存)在同一页面中,我如何强制结果为 304 未修改
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-04
  • 2016-10-15
  • 2017-05-09
  • 1970-01-01
相关资源
最近更新 更多