Came across this today on Scott Guthrie's blog:
Ting (one of the key guys on the ASP.NET Team) has posted an awesome blog post detailing all of the different techniques for doing Cross-Page navigation in ASP.NET, including: client-side redirects, server-side redirects, the new ASP.NET 2.0 cross-page posting feature, the new ASP.NET 2.0 multi-view control, and the new ASP.NET 2.0 Wizard Control.
[Via ScottGu's Blog]
I think the ASP.NET team may have a slightly different idea of what consitutes 'navigation' than I do. You see, it's all very well having all this postback-oriented navigation support built in to ASP.NET, but we could really use a bit of consideration for the humble GET request. Where are the features that make it easier for me to build pages into my application that you can bookmark, that search engines can index, that people can link to from blog posts, and that you can email to a friend? Where are the tools to help me build sites that users can browse? The only option discussed in Ting's article that enables that sort of behaviour is the 'client side redirect' - which is usually a good way to introduce an unnecessary round-trip into your application.
Call me old fashioned, but as far as cross-page navigation goes, I've always had a soft spot for <a href> tags. ASP.NET has always seemed somewhat hostile to developing sites that provide navigation through this quaint old method. You know what I'd like? A nice API for building typesafe, correctly normalised URL references containing querystrings for ASP.NET pages. PageMethods might be one approach, but I bet the ASP.NET guys could produce something much more powerful with proper tool support built in to VS. Let's have some thought put in to the most basic web tool - the hyperlink.