Есть легаси код портала, фронт: html, js (ну и jquery), бэк: asp core. Отдельные разделы сделаны как spa, без всяких фреймворков, просто ajax-ом, но index страницы сделаны razor-ом. Поддержка истории изначально заложена не была, но все действия на странице адекватно формируют url, который если скопировать и вставить в строку браузера, адекватно отобразит страницу. Если жмакать кнопки вперед-назад в браузере - url меняется, но перезагрузки страницы не происходит.
Есть задание реализовать в разделах поддержку истории. И проблема в том, что страница грузится, сформированная на сервере разором, а потом уже, при работе со страницей, отдельные блоки грузятся аяксом. Т.е. либо мне переписывать полностью как рендерится изначально страница (делать по это контроллер, делать аякс запрос, по полученным данным формировать страницу на клиенте, в которой так же может быть 3-4 блока под разные запросы и т.д., в общем почти с нуля писать вьюху со всей js логикой, либо искать другое решение:)
Все методы window.location делают pushState (ну кроме получения самого урл)), поэтому перегрузить страницу с его помощью не могу, портит историю. Пробовал аяксом получить всю индекс страницу, вырезать из нее body и тупо вставить в боди текущей страницы. Получаю артефакты в виде неподгруженных/неотработанных js скриптов в некоторых блоках, которые в индексе как частичные представления.
В общем вопрос, как можно сделать что-то подобие window.location = url, только без того, что это уйдет в историю?