использовать AJAX в веб-формах ASP.NET, но оставить URL-адреса - PullRequest
1 голос
/ 01 апреля 2012

У меня есть веб-сайт ASP.NET Web Forms. У него есть страница внутри главной страницы. На этой странице есть много элементов, которые выполняют постбэк, но с другим параметром GET. Так, например, я нахожусь на http://mysite/mypage?p=1,, а затем нажимаю на какой-то предмет и перехожу на http://mysite/mypage?p=2, и так далее. Очевидно, что главная страница не меняется, меняется только URL-адрес и содержимое страницы, поэтому на самом деле нет необходимости делать полный постбэк. Поэтому я хотел бы переписать страницу, чтобы выполнить частичный постбэк в стиле AJAX и изменить URL-адрес (я хочу, чтобы пользователи могли делать закладки и правильно перемещаться по истории браузера). Но как мне это сделать?

Я могу, например, использовать UpdatePanel и сделать все элементы некими кнопками, которые выполняют постбэк, а не гиперссылками, которые выполняют навигацию по страницам. Но мои URL останутся прежними, и это плохо.

Я бы предпочел ответ, использующий либо элемент управления UpdatePanel, либо библиотеку jQuery, но ответы, использующие другие технологии, тоже подойдут, поскольку они могут дать мне подсказку при решении моей проблемы.

1 Ответ

1 голос
/ 01 апреля 2012

Единственный способ добиться этого - динамически загружать контент, используя «#» в URL.Например, http://mysite/mypage#1, http://mysite/mypage#2. Это позволяет изменять URL-адреса по требованию без необходимости перенаправления при выполнении функций типа AJAX.URL также может быть добавлен в закладки.

Конечно, вам нужно написать некоторый Javascript для разбора символов после # или какого-либо типа прослушивателя событий, когда происходит частичная обратная передача для передачи в других параметрах.

Я реализовал это уже несколько раз, и это единственное, что я знаю, что решает вашу проблему.В то время Twitter был источником вдохновения.

...