Is there a specific reason why I should be using the Html.CheckBox, Html.TextBox, etc methods instead of just manually writing the HTML?
<%= Html.TextBox('uri') %>
renders the following HTML
<input type='text' value='' name='uri' id='uri'/>
It guess it saves you a few key strokes but other than that. Is there a specific reason why I should go out of my way to use the HtmlHelpers whenever possible or is it just a preference thing?
There are huge benefits:
It has overloaded methods to pre-populate the values (formatted, and safe for HTML) just like the ViewState.
It allows built in support for the Validation features of MVC.
It allows you to override the rendering by providing your own DLL for changing the rendering (a sort of ‘Controller Adapter’ type methodology).
It leads to the idea of building your own ‘controls’ : http://www.singingeels.com/Articles/Building_Custom_ASPNET_MVC_Controls.aspx