如何解决Ajax请求结果的缓存问题说明(3)


 public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        [NoCache]

public string GetCurrentTime()
       {
           return DateTime.Now.ToLongTimeString();
       }
   }
   public class NoCacheAttribute : FilterAttribute, IActionFilter
   {
       public void OnActionExecuted(ActionExecutedContext filterContext)
       {
         filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
       }

       public void OnActionExecuting(ActionExecutingContext filterContext)
       {}
   }
 

实际NoCacheAttribute特性最终控制消息消息的Cache-Control报头,并将其设置为“no-cache”,指示浏览器不要对结果进行缓存。如下所示的是针对GetCurrentTime请求的响应消息:

复制代码 代码如下:


 HTTP/1.1 200 OK
    Server: ASP.NET Development Server/10.0.0.0
    Date: Thu, 03 Jan 2013 12:54:56 GMT
    X-AspNet-Version: 4.0.30319
    X-AspNetMvc-Version: 4.0
    Cache-Control: no-cache

Pragma: no-cache
    Expires: -1
    Content-Type: text/html; charset=utf-8
   Content-Length: 10
   Connection: Close

   8:54:56 PM

静守己心,看淡浮华

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjdwdp.html