Я бы предложил поместить данные в Session, а не в TempData, поскольку TempData хранит данные только до конца следующего запроса.В вашей ситуации происходит то, что пользователь делает запрос каждый раз, когда нажимает кнопку, поэтому при втором нажатии кнопки TempData уже была очищена (или будет очищена в конце первого запроса).
Вы можете отключить кнопку после первого нажатия, но это может привести к менее надежному решению.Использование сеанса и другого запроса AJAX для очистки данных в сеансе, выполненных при успешном завершении первого запроса AJAX, гарантирует, что вы знаете, что первый возвращенный запрос AJAX и данные в сеансе могут быть очищены