title: What methods are available to stop multiple postbacks of a form in ASP.NET MVC?
body: <p>A common web problem is where a user clicks the submit button of a form multiple times so the server processes the form more than once.  This can also happen when a user hits the back button having submitted a form and so it gets processed again.</p>
  
  <p>What is the best way of stopping this from happening in ASP.NET MVC?</p>
  
  <p>Possibilities as I see it are:</p>
  
  <ol>
  <li>Disable the button after submit - this gets round the multiple clicks but not the navigation</li>
  <li>Have the receiving action redirect immediately - browsers seem to leave these redirects out of the history</li>
  <li>Place a unique token in the session and on the form - if they match process the form - if not clear the form for a fresh submit</li>
  </ol>
  
  <p>Are there more?</p>
  
  <p>Are there some specific implementations of any of these?</p>
  
  <p>I can see the third option being implemented as an ActionFilter with a HtmlHelper extension in a similar manner to the anti-forgery stuff.</p>
  
  <p>Looking forward to hearing from you MVC'ers out there.</p>