Все элементы управления, которые вы добавляете динамически, исчезают при обратной передаче. Поэтому он не существует, когда страница возвращается. Как сказал Layoric, он уничтожается в течение жизненного цикла страницы. Я бы сказал, что если вы можете просто вставить скрытое поле в строку, так как это скрытое поле, и если оно вам не нужно, просто не смотрите на него (в противном случае оно все еще может сидеть).
Имейте в виду, что когда страница ASP.NET «отправляется обратно», она проходит весь жизненный цикл страницы. Это означает, что при первой загрузке страницы она проходит через preinit страницы, init, load, prerender, render и т. Д. Затем, когда она публикуется обратно, она проходит как минимум preinit, init и load (могут быть и другие события). Я не могу вспомнить с головы до головы), прежде чем какие-либо события происходят.