В настоящее время я работаю над системой управления документами в ASP.NET 3.5 с использованием инструментария Telerik AJAX. Он состоит из главной страницы с заголовком в верхней части и RadTreeview внизу слева для навигации по сайту. Древовидная структура использует комбинацию статических и динамических узлов. Динамические узлы заполняются через веб-сервис. При щелчке узла происходит переход к соответствующей странице, перезагрузка главной страницы и отображение содержимого целевой страницы.
Проблема возникает из-за того, что динамические узлы древовидной структуры заполняются через веб-сервис, и поэтому, когда пользователь перемещается по дереву, чтобы найти документ, древовидная структура ведет себя так, как вы ожидаете. Однако, когда вы добираетесь до нижней части дерева динамических узлов, переход к странице навигатора вызывает загрузку соответствующей страницы, а затем древовидная структура сбрасывается в свернутое состояние. Это означает, что пользователь может быть глубоко в гнезде документов, но когда он просматривает один, дерево разрушается, и им приходится начинать навигацию заново. Это ограничение не будет приемлемым с точки зрения простоты использования.
Согласно Telerik, это спроектированное поведение по соображениям производительности - узел только когда-либо беспокоится о заполнении следующего набора узлов, и поэтому состояние древовидных представлений не запоминается в viewstate.
Итак, вопрос в том ...
Допустим ли шаблон дизайна навигации в виде главной страницы / асинхронного дерева?
Существуют ли другие способы иметь AJAX-дерево на главной странице, которое запоминает его состояние при переходе на другую страницу?
Я рассмотрел модель рендеринга siglepage / updatepanel / частичной страницы, но мнения, которые я видел в сети, показывают, что это плохая идея. Это сбивает с толку пользователей, которые ожидают, что поведение браузера «назад / вперед» будет перемещаться по сайту, но в одностраничном мире они в конечном итоге покинут сайт.
Я также подумал, что, возможно, может использоваться одностраничный контейнер и iframe, но это, похоже, отходит от «стандартного» шаблона проектирования с использованием мастер-страниц.