Ciao,
la mia idea è che se non vuolete togliere runat="server" dovreste utilizzare dei controlli server al posto dei controlli HTML.
Ecco un esempio:
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:HiddenField ID="HiddenField2" runat="server" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
al controllo TextBox1 potreste associare un controllo e.mail validator per essere certi che l'utente abbia inserito un "indirizzo e.mail valido".
ovviamente all'evento onclick del controllo Button1 andrete ad inserire il nome della sub / function da eseguire.
In alternativa, per l'utilizzo dei controlli HML Server, guarda qui: http://www.fucinaweb.com/fw/aspnet04/
Fammi sapere.
http://www.infomidia.it
Domenico