Asp.net MVC с историей Ajax (адрес jquery), как загрузить с URL-адреса?

Я использую asp.net mvc с навигацией ajax. Я использую адрес jquery, и я могу изменить адресную строку на «MYPage.Com/#/Url», но как я могу вызвать свой маршрут, когда пользователь вводит эту ссылку?

Возможно, об этом уже спрашивали, но я не смог его найти, поэтому, пожалуйста, укажите мне на него, если найдете.


person Oskar Kjellin    schedule 07.07.2010    source источник


Ответы (2)


Вам нужно использовать событие window.onHashChange элемента окна. Лучше всего использовать библиотеки javascript, такие как jquery bbq, для обработки изменения хэша.

Если вы все же хотите сделать это без использования библиотеки, то при загрузке страницы вы должны сделать вызов функции, которая обрабатывает даже onHashChange.

person nsdiv    schedule 18.04.2012

Для этого нет события (по крайней мере, не в последний раз, когда я проверял). Вам нужно сделать функцию проверки в JS, которая будет запускаться, например, раз в 100 мс (или чаще).

var currentHash="";
function CheckHash()
{
    if(currentHash!=window.location.hash)
    {
        currentHash=window.location.hash;
        NavigateTo(currentHash); //or whatever code to execute when address behind `#` changes
    }
}

CheckHash(); //Initial Run, for fast reaction on load
window.setInterval(CheckHash,100); //schedules the function to run once every 100ms
person AlexanderMP    schedule 07.07.2010
comment
Спасибо, но посмотрите на эту ссылку, похоже, у них нет таймера asual. com/jquery/адрес/образцы/вкладки - person Oskar Kjellin; 08.07.2010
comment
Внутри плагина есть таймер, который используется только для старых версий Firefox, Safari и Opera. - person Rostislav; 08.07.2010