Кнопка возврата в браузере asp.net

Я внедряю веб-систему. Мне нужно захватить, если нажата кнопка «Назад» в браузере. Он не выполняет обратную передачу, если нажата кнопка «Назад». Я видел некоторые части кода, но это не решает мою проблему. У меня есть домашняя страница. Я хочу вернуть мою домашнюю страницу, если нажата кнопка «Назад» в браузере.

Ну чтобы было понятнее->Главная страница->x.aspx?Date=30.01.2012 , ставлю дату сеанса, потом кнопку браузера назад, Домашняя страница???? Там я хочу получить дату сеанса, отправив домашнюю страницу.

window.history.go(-1) 

person Ktt    schedule 30.01.2012    source источник
comment
Я не думаю, что это возможно...   -  person Holger    schedule 30.01.2012


Ответы (4)


Эту проблему не так просто решить по нескольким причинам:

  • Кэширование ведет себя по-разному в разных браузерах
  • Вы собираетесь мешать естественному взаимодействию с пользовательским интерфейсом, что не рекомендуется.
  • скорее всего проблема в конструкции

Я бы не стал пытаться делать это по этим причинам, а вместо этого посмотрел бы на проблему под другим углом (например, это проблема дизайна?)

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

person Tom Gullen    schedule 30.01.2012

Я предполагаю, что вы пытаетесь избежать случая, когда пользователь возвращается и повторно отправляет форму. Вы можете избежать обнаружения использования кнопки «Назад», используя POST/REDIRECT/GET (PRG). После обработки отправки формы сделайте редирект на страницу, на которой вы хотели бы оказаться.

person D'Arcy Rittich    schedule 30.01.2012

Вы можете попробовать использовать ScriptManager со свойством EnableHistory установить на истину.

<asp:ScriptManager ID="ScriptManager1" runat="server"
    EnableHistory="true" />

Статья в MSDN с описанием этого: http://msdn.microsoft.com/en-us/library/ie/cc488548.aspx

person sshow    schedule 30.01.2012

Если вы хотите отключить кнопку «Назад» на одной из страниц, попробуйте использовать javascript ниже.

function noBack() { window.history.forward(); }

и в теге body напишите ниже

‹ТЕЛО onload="noBack();" onpageshow="если (event.persisted) noBack();" при выгрузке=""›

Это обязательно должно решить вашу проблему.

Удачного кодирования !!

person Ravia    schedule 30.01.2012