Из того, что я могу сказать, «кеширование дырки от бублика» в ASP относится к кешированию на стороне сервера. Сервер повторно использует дословно «хлебную» часть пончика в запросах и заново генерирует «дырочную» часть для каждого запроса.
У клиента (браузера) нет такого механизма, чтобы отличать «хлеб» от «дыры». Он кэшируется на уровне запроса, основываясь на заголовках кэша, отправленных сервером. Таким образом, если срок жизни кэша для https://example.com/page-with-form
составляет десять минут, но случайный идентификатор формы действителен только в течение одной минуты, пользователь, скорее всего, столкнется с ошибкой, даже если он обновит страницу через девять минут и 59 секунд .
Имейте в виду, что пользователь может также столкнуться с ошибкой, если он уйдет на час, вернется и нажмет "отправить" в форме.
Одним из подходов было бы отключение кэширования на стороне клиента путем установки заголовков без кэширования в ответе сервера.
Другой вариант: разрешить кэширование HTML, но использовать JS для случайного повторного заполнения случайного идентификатора (я не знаю структуру безопасности вашего приложения, поэтому я не не знаю, если это побеждает цель случайного идентификатора).