I consider myself very knowledgeable in web UI development, and over the last four years I have learned a lot about ASP.Net Web Forms, but I still haven't figured out a good way to update sections of a page via Ajax. I have done this several different ways which basically involves a user control loaded by some sort of .aspx page or handler. This works well, but not very generically and usually runs into ViewState issues with anything that is even moderately complex.
I would have jumped to UpdatePanel's sooner, but Microsoft's JavaScript code is total crap. Does anyone have any good strategies to load/update/refresh sections of a web form without using UpdatePanels? Or does anyone have any tips with using UpdatePanels to get around some of the front-end code crappy-ness?
Update (clarification)
Here is an example situation of what I am trying to do to be more clear. On our homepage near the bottom of the page we have some tabs with different content. Each tab's content body has different content geared to some different user type. Of the thousands of homepage visitors we get a day maybe a dozen click on any tab. Despite this data our managers still would like to have the tabs there. Because each tab body has a lot of HTML content in it, I want to load the content of the tab when the tab is clicked. The solution is obviously to use ajax; however, where do you put the HTML/Controls to load the HTML when the tab is clicked. I could put each tab's content in its own apsx page (e.g./home/tabs1.aspx), but then we couldn't easily embed the content in the page initially if we wanted to. I could put the content in its own user control and create a HttpHandler or page that loads it, but this leads to view state issues on more complex pages. I could just hard-code the HTML in a function and then set it a literal or return the HTML in a handler when an ajax request calls it. Each of these solutions work. Some are more ideal than others (the third one is terrible separation of concerns, although I have seen it before). UpdatePanel's provide the best solution thought because they let you put the content in the correct part of the markup with out a separate file. The problem I have with UpdatePanel's is they require you to use Microsoft's javascript library. Are there any solutions that work like UpdatePanel's without using UpdatePanels?
A couple of other use cases, I am trying to solve:
- Box on page that has content when loaded, but updates every 30 seconds
- Big masthead navigation menu's that I would like to load only when a user hovers over a section
- You have a form that displays in a lightbox when a user click's a link. (this can cause viewstate issues)