Я рекомендую ограничить эти вызовы не-GET-запросами, чтобы не потерять преимущество кеша на GET-запросах.Следующее гарантирует, что даже агрессивные браузеры кэширования, такие как iOS 6 Safari, не будут кэшировать ничего, что не является запросом GET.
Я использую базовый класс Controller, который наследуют все мои контроллеры по ряду причин, и этохорошо зарекомендовал себя тем, что мое переопределение Initialize может обрабатывать условно мои заголовки кэширования.
public class SmartController : Controller
{
...
public HttpContextBase Context { get; set; }
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
Context = requestContext.HttpContext;
if (Context.Request.RequestType != "GET")
{
Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
}
base.Initialize(requestContext);
...
}
...
}