In the real world of HTML, you use a separate
<form> tag for each form on your page. If I have a currency converter in my travel website’s sidebar, it has its own form tag. As a result, when I press “enter” in a text field, the right submit button is pushed and only that form is submitted.
In ASP.NET we just wrap the whole page in one massive hack of a
<rant>That bit always annoys the hell out of me – but I guess that what’s you get when you let architects try and replicate a windows development model onto the web.
The most annoying thing however has always been how to map the “enter” effect to the right button. Well, in ASP.NET 2.0 a feature shipped that I never noticed – and it’s pretty cool.
<asp:Panel DefaultButton="MyButton" runat="server"> ... my form here ... </asp:Panel>
It still submits everything to the server, which is a bit wrong, but at least you get the right UI model.
It omits horendous output:
…but I guess with a megahack like
<form runat="server"> there’s not much you can do besides hack it further.
My excitement about this feature, mixed with the disappointment of
<form runat="server"> has left me in the same mood I started in.