I deleted my temporary internet files, cache, cookies, .NET temporary files, everything I could think of was deleted. I changed the port number I was using on my local machine, changed the path of my project everything in case there was something stuck somewhere. And yes I did turn my machine on and off again! No luck! Now I started to get a bit annoyed!
I excluded the web.config from my project added a new one, and hey presto my default2.aspx now rendered properly with __doPostBack appearing in the HTML and the other hidden fields .NET needs! I copied all the values from my old web.config into my new version, saved it, ran the website and fuck me it worked. So I know you have just read all that and I could have told you from the start, but I like telling stories.
So the moral of this story is, if you know it should be working, get a new web.config file. If that doesn’t work, erm…try one of the few other solutions on the internet? Hope this helps!