ScriptManager Control сохраняет хэш истории - PullRequest
2 голосов
/ 15 марта 2011

Я использую элемент управления ScriptManager для загрузки результатов поиска с веб-служб сервера. На странице есть текстовое поле и кнопка, где пользователь вводит свои условия поиска. Когда они отправляют запрос, на странице поиска вызывается Response.Redirect. Я использую функцию истории ScriptManager для отслеживания фильтрации, которую могут выполнять пользователи. Если вы знакомы с этой функцией, URL-адрес выглядит примерно так:

http://somesite/search.aspx?q=giant+dog#color=red&hair=long

Моя проблема заключается в том, что если пользователи решают выполнить другой поиск с помощью текстового поля и кнопки на странице search.aspx, что приводит к отклику response.redirect, строка запроса изменяется, но история хеширования остается частью URL. Это не имеет смысла для меня, потому что из того, что я понимаю о Response.Redirect("someURL"), оно должно действовать так, как будто оно отправляет вас на новую страницу, независимо от того, идет ли оно на ту же страницу, что и ушел.

Я знаю, что могу установить window.location.hash = "#", но я надеялся, что был более чистый способ, чем на стороне сервера.

Пожалуйста, помогите! : -)

Ответы [ 2 ]

1 голос
/ 06 августа 2014

Это старый пост, но я подумал, что добавлю решение на тот случай, если кто-то еще искал это. Я столкнулся с той же проблемой, когда точка журнала сохранялась на всех почтовых серверах, когда был сделан вызов Response.Redirect(). Я не уверен, почему это происходит, и это кажется мне нелогичным. Но я верю, что ScriptManager делает что-то, чтобы перенести точку истории.

Ответ заключается в том, чтобы поместить ваш элемент управления, который отправляет вызов Response.Redirect(), в UpdatePanel. Итак, в моем случае, у меня есть кнопка, у которой есть обработчик событий, по которому производится перенаправление. Без UpdatePanel точка истории сохраняется. С UpdatePanel, оборачивающим кнопку, все работает как положено.

0 голосов
/ 15 марта 2011

Вы можете вызвать AddHistoryPoint метод ScriptManager, до Redirect.

...