Как сообщалось ранее, это ожидаемое поведение именно потому, что страница выбирается из кэша.Вы все еще можете поддерживать кэширование для загрузок без обратной передачи, но самый простой способ, который я нашел, - это определить обратную передачу с помощью кода в Global.asax и переключаться соответствующим образом, как в примере ниже.
public override string GetVaryByCustomString(HttpContext context, string custom)
{
if (context.Request.RequestType.Equals("POST"))
{
context.Response.Cache.SetNoServerCaching();
return "POST " + DateTime.Now.Ticks + " " + context.Request.RawUrl;
}
switch (custom)
{
case "RAWURL":
return context.Request.RawUrl;
default:
return "";
}
}
Затем вы можете подключить это к директивам кэша вывода в ваших элементах управления:
<% @ outputcache duration = "3600" varbybyparam = "none" varbybycustom = "RAWURL"%>
Обратите внимание, что если вы сделаете это таким образом, вы потеряете возможность легко варьироваться в зависимости от источника данных элемента управления.