Temp.ata do ASP.NET persiste entre solicitações

Estou usando dados temporários da seguinte forma em meus controladores - muito simples, quando há um problema:

TempData("StatusMessage") = "You have no items set to Auto-Ship."

Em todas as páginas, tenho um controle de usuário da seguinte maneira:

<div class="error-container">
<%  If TempData.ContainsKey("ErrorMessage") Then%>
<script> $('div.error-container').show();</script>
<div class="msg-error"><p><%=TempData("ErrorMessage") %></p></div>
<% End If%>
<%  If TempData.ContainsKey("StatusMessage") Then%>
<script> $('div.error-container').show();</script>
<div class="msg-status"><p><%=TempData("StatusMessage")%></p></div>
<% End If%>
<ul></ul>
</div>

O problema é que, quando tenho um erro adicionado ao tempdata, ele aparece corretamente na primeira solicitação, mas TAMBÉM aparece novamente na próxima solicitação - o que é obviamente muito confuso e não é um comportamento desejado.

Não estou usando nenhuma IoC, vi a postagem com os mesmos problemas ao usá-la.

questionAnswers(2)

yourAnswerToTheQuestion