如何阻止MVC缓存调用动作方法的结果?
|
我遇到了IE缓存操作方法结果的问题. 我发现的其他文章与安全性和[授权]属性有关.这个问题与安全性无关. 这是一个非常简单的“记录投票,抢平均值,返回平均值和投票数”的方法.关于它的唯一有趣的事情是它通过Ajax调用并返回一个Json对象.我相信它是被缓存的Json对象. 当我从FireFox运行它并使用Firebug观察XHR流量时,一切都运行良好.但是,在IE 8下,“throbber”图形没有时间显示,显示使用jQuery注入页面的“新”平均值和计数的页面元素永远不会有所不同. 我需要一种方法告诉MVC永远不要缓存这个动作方法. 这篇文章似乎解决了这个问题,但我无法理解它: 我需要更多的上下文来解决方案,以了解如何扩展AuthorizationAttribute.请解决您的答案,就好像您正在与对MVC缺乏深入了解的人交谈,即使这意味着回复了一篇关于某些必要基础/先决条件的文章. 谢谢, 特雷卡罗尔 解决方法MVC不会缓存结果. IE确实如此.所以你必须告诉IE不要这样做. 这是我如何做到的.首先,属性: [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,Inherited = true,AllowMultiple = false)]
public sealed class CacheControlAttribute : ActionFilterAttribute
{
public CacheControlAttribute(HttpCacheability cacheability)
{
this._cacheability = cacheability;
}
public HttpCacheability Cacheability { get { return this._cacheability; } }
private HttpCacheability _cacheability;
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
HttpCachePolicyBase cache = filterContext.HttpContext.Response.Cache;
cache.SetCacheability(_cacheability);
}
}
接下来,一个动作: [CacheControl(HttpCacheability.NoCache),HttpGet]
public JsonResult MyAction() (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- log4net在ASP.NET中的唯一请求ID
- asp.net – 生产网络服务器上的间歇性高CPU(100%)
- asp.net-mvc – 如何在asp.net C#中从http重定向到https并将
- .net-4.0 – 从自定义IHttpHandler调用MvcHttpHandler.Exec
- 使用ActiveDirectory授权与ASP.NET身份
- 如何在asp.net转发器控件中获取项目点击事件?
- 在ASP.NET 4 ReportViewer中使用对象数据源
- asp.net – 在MVC中使用iTextSharp在MVC Razor中将HTML转换
- asp.net-mvc-4 – 我应该如何使用ReturnUrl = ViewBag.Retu
- asp.net-mvc – 在您的ViewModel中放置什么
- asp.net-mvc – 逐渐将现有的ASP.NET站点转换为M
- 用于属性的ASP.NET MVC编辑器模板
- asp.net-mvc-5 – 如何在服务器上保存Rotativa P
- asp.net – 为什么这个JSON返回“无效的JSON原语
- ASP.net RequiredFieldValidator不阻止回发
- 版本化ASP.NET Web应用程序
- asp.net-mvc – 单元测试RedirectToRouteResult
- asp.net-mvc – MVC – 如何从get请求获取参数值
- asp.net-mvc – 使旧会话Cookie无效 – ASP.Net标
- asp.net – .NET身份电子邮件/用户名更改
