When Microsoft moved from ASP to ASP.NET they had a chance to closely integrate ASP.NET with advancements they had made in the .NET Framework. (As opposed to "bolting" on a server side language after the fact)
With that tighter integration came significant programmatic improvements from ASP.NET over ASP.
Ease of Deployment
The introduction of metadata means that one no longer has to register web applications or COM objects. With this metadata the .NET Framework is able handle the details of running an application on your behalf.
Easier More Powerful Session Management
The web is based on an inherently stateless protocol (HTTP). Measures need to be taken to provide "statefulness" to web transactions. (If you added an item to a shopping cart you wouldn't want the web server to forget who you are when you request the next page) Classic ASP had session management, but that session management did not scale to web farm server environments. ASP.NET addressed this issue, opening more possibilities for robust technology offerings.
Code Declaration Blocks
Code declaration blocks are compiled instead of being interpreted at run time. This compilation allows for much better performance. Code declaration blocks also provide a mechanism to separate HTML and scripting content. This important because it helps code be more readable and maintainable. (The job is never done when the code is finished, someone will ALWAYS have to maintain it later)
There are several other advantages that you can read about in the Additional Resources section.
Additional Resources
ASP.NET vs ASP (W3Schools)