ASP.NET MVC Обновление адресной строки с помощью ссылки AJAX
-
01-10-2019 - |
Вопрос
Я пытаюсь создать галерею, управляемую Ajax, где каждая фотография в последовательности загружена Ajax.Actionlink
.
Пользователь может добраться до любого приведенного фото, передавая параметр в метод действий, например: Gallery/Index?photo=100
Проблема в том, что когда пользователь накисляет фотографии с Ajax.Actionlink
URL URL больше не обновляется (так, как он будет во время обычных спинсов), поэтому они не могут скопировать вставку из адресной строки, чтобы вернуться на фотографию.
Мой вопрос: какой лучший способ решить эту проблему в ASP.NET MVC? Одна вещь, о которой я думал, было обновление адресной строки с хэштегами, но, честно говоря, я не знаю, является ли это хорошим подходом.
Я мог бы использовать несколько лучших советов о том, как решить эту проблему. Любые предложения были бы очень оценены, спасибо.
Решение
Если вы действительно хотите обновить адресный бар с каждым обновлением Ajax, есть пару библиотек JQuery / JavaScript, которые вы можете использовать, как описано в этом блоге: http://stephenwalther.com/Archive/2010/04/08/jquery-asp-net-and-browser-history.
Тем не менее, решение лучшего практики обычно не пытается не пытаться подделать что-то подобное (его только пойдет не так). Если вы хотите дать своим пользователям возможность поделиться или ссылку на фотографию - предоставить поле с соответствующим URL или погибшим в URL-адреса, который они могут копировать. Google Maps имеет хороший пример этого - если вы хотите поделиться картой с кем-то еще.
Другие советы
Я бы посмотрел на переписывание ваших маршрутов, чтобы включить идентификатор фотографии на пути.
Например, / галерея / индекс / 100 вместо? Фото = 100. Это было бы то, почему ваши методы действий действий не работают, как они должны, поскольку напротив не является частью маршрута.