2012-04-26 2 views
0

Я хочу перенаправить страницу со ссылкой #. Поскольку значение после # не отправляется на сервер с HTTP-запросом, я кодировал скрипт, как показано ниже в представлении Razor.Перенаправление на новую страницу без отображения родительской страницы

$(document).ready(function() { 
if (window.location.hash) { 
var url = window.location.href.toLowerCase().replace("ug_101", "UG"); 
window.location = url; 
} 

Я разместил код вверху страницы, но элементы перед родительским представлением отображаются перед перенаправлением. Как перенаправить без загрузки родительского представления? Или как получить значение после # в URL-адресе на C#?

ответ

0

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

Попробуйте его с сценарий похож на это:

if (window.location.hash) { 
var url = window.location.href.toLowerCase().replace("ug_101", "UG"); 
window.location = url; 

Ни один из них не является JQuery, и никто не нуждается в какой-либо части страницы для загрузки, так что метод .ready() вызывает у вас задержка без уважительной причины.

+0

Спасибо. Я попробовал код Но страница продолжает загружаться в Firefox. Не перенаправлять. На странице сафари перенаправляется, но все же заголовок на странице макета отображается перед перенаправлением. – user1357737

+0

Вы можете сделать это еще дальше и сделать его пустой страницей, перенаправляясь на одну страницу или другую. Вы ничего не увидите, пока не попадете на страницу контента. FYI. Это работа, которая лучше всего выполняется на сервере, потому что перенаправление загрузки страницы будет основано на скорости вашего сервера, скорости целевого сервера перенаправления, скорости подключения к Интернету пользователей - все, что зависит от пользователя, и полностью вне вашего контроля. Если сервер делает это (каким-то образом, помимо строки хэша), вы бы перенаправляли быструю и простую. –