Мой ответ не обязательно относится к ASP.NET, но в целом к ajax.
Существует множество удобных плагинов для jQuery, которые позволяют поддерживать историю браузера при использовании ajax для загрузки содержимого на страницу.
Я рекомендую плагин jQuery History - http://tkyk.github.com/jquery-history-plugin/
По сути, у вас будет URL, созданный следующим образом:
http://yourpage.com/#page1
http://yourpage.com/#page2
Плагин будет определять, когда изменяется URL, и браузер не пытается перезагрузить страницу, поскольку в адресе есть хэш. Таким образом, когда плагин обнаруживает изменение адреса, вы можете делать все, что захотите. Например, адрес изменяется на http://yourpage.com/#page1, и затем jQuery History обнаружит изменение, и вы можете получить строку # page1 из события, которое инициирует изменение адреса. Тогда ты знаешь, ага! У меня # page1, тогда я должен выполнить эту операцию ajax.
Также очень просто добавить страницу в историю с помощью jQuery History, вы просто делаете:
$.history.load(url);
На http://tkyk.github.com/jquery-history-plugin/#demos и http://www.serpere.info/jquery-history-plugin/samples/
есть много хороших демонстраций.
Надеюсь, это поможет, удачи!