<p>I like HtmlControls because there is no HTML magic going on... the asp source looks similar to what the client sees. </p>

<p>I can't argue with the utility of GridView, Repeater, CheckBoxLists, etc, so I use them when I need that functionality. </p>

<p>Also, it looks weird to have code that mixes and matches:</p>

<pre><code>&lt;asp:Button id='btnOK' runat='server' Text='OK' /&gt;
&lt;input id='btnCancel' runat='server' type='button' value='Cancel' /&gt;
</code></pre>

<p>(The above case in the event you wanted to bind a server-side event listener to OK but Cancel just runs a javascript that hides the current div)</p>

<p>Is there some definitive style guide out there? Should HtmlControls just be avoided? </p>

well... i wouldn't use an html control if you don't need to do anything on it on the server. i would do
```
```
<input id='btnCancel' type='button' value='Cancel' />
```
```
fin.