Nagłówek żądania zawiera pewne dane POST. Bez względu na to, co zrobisz, po ponownym załadowaniu strony żądanie zostanie ponownie wysłane.
Prostym rozwiązaniem jest przekierowanie do nowej (jeśli nie tej samej) strony. Ten wzorzec jest bardzo powszechny w aplikacjach internetowych i nazywa się Post/Redirect/Get. Typowe dla wszystkich formularzy jest wykonanie POST, a jeśli się powiedzie, należy wykonać przekierowanie.
Spróbuj jak najlepiej oddzielić (w różnych plikach) skrypt widoku (głównie HTML) od skryptu kontrolera (logika i inne rzeczy). W ten sposób zawsze umieszczasz dane w osobnym skrypcie kontrolera, a następnie przekierowujesz z powrotem do skryptu widoku, który po renderowaniu nie będzie zawierał danych POST w nagłówku żądania.