So I have a "half way" solution that works really well. Note that I have an ASP.NET website, not a ASP website.
ASP and ASP.NET are a horror show, but c# is actually really nice. I am using "NVelocity" with asp.net pages. In my "code behind" pages I override all ASP.NET functionality and render HTML via "NVelocity". Your velocity templates will port to Unix if you want, but you can also retain a lot of the existing VB/C# logic in code by just overriding ASP.NET rendering.
I don't use the model view controller paradigm, I just use the nvelocity templating system. Nvelocity is old technology but it is stable and works well. I think I picked up my copy from the "castle" MVC framework.
I can't tell you how nice it is to have clean HTML that you can hand code and understand. Want multiple form's on a page? No problem. Want to get rid of that viewstate stuff? It's gone... Want to understand how postbacks variables are named, no problem...
Microsoft's WYSIWYG approach to website building is stupid. Binding of data, grid controls, hiding form element names etc, all better suited to low use, low complexity enterprise websites.