This is so true, and it's my big problem with asp.net, I still think linearly, and just the other day I was outputing something from a loop in a code behind file to a label and it took me sometime to not loop the output in the HTML label but in the script with labelId.text.
It will take sometime for me to drop the classic ASP way of doing things, i just hope it happens earlier than 2 years.
One thing that I always find difficult, is to know what kind of HTML a .NET control will output, a label I know outputs to a <span> other controls output to tables, where can I find a list of this?