Don't forget that you can always set runat="server"
on any control - that includes standard html form controls such as <input>
and <select>
, and also other elements like <div>
. Anything, really.
This means that you can regain control of the html output in your WebForms pages quite effortlessly - as long as you don't need viewstate or any other more advanced databinding/state managing that ASP.NET normally handles for you.
That said, learning to use the ASP.NET MVC Framework is not a bad idea, since it helps you regain control of much more than just the html output. Generally, creating a page in ASP.NET MVC takes a little more work, since there are no drag-n-drop controls like gridview, textbox or even repeater. Instead, you use html helper methods and regular foreach
loops, which means you have to type a lot more code. However, the MVC framework is designed so that you won't have to repeat much code anyway.