Как получить значение переменной сеанса на другой странице aspx?
В HTML-файле я устанавливаю значение переменной сеанса с помощью JavaScrip (в котором session.js загружается из http://dreamerslab.com/blog/en/javascript-session/"):
var ar = ['ID', 'pID', 'cID', 'name', 'type', 'access', 'desc', 'comment', 'lat', 'lon', 'contractName']; var monument = Session.get("monument") || { rec: [] }; ... Session.set("monument", ar);
Затем нажмите кнопку, чтобы перейти на другую страницу aspx. В этом коде aspx я попытался получить значение сеанса,
var sValue = Session["monument"];
но есть
Session["monument"]не определен.
Как можно получить значение этого сеанса? Спасибо.
Что я уже пробовал:
Как получить значение переменной сеанса на другой странице aspx?
ZurdoDev
var sValue = Session ["monument"]; это правильный способ получить его. Это означает, что он не устанавливается.
Sergey Alexandrovich Kryukov
Правильно. Это может быть просто вопрос порядка операций. Это не определено, это не должно быть проблемой.
—СА
s yu
Прежде чем я нажимаю на кнопку HTML-код для перенаправления на страницы aspx, я получить значение по сессии.вам("памятник") в открывшееся окно. Он действительно отображает именно те значения массива. Тогда Page_Load () aspx, Session["monument"] имеет значение null. Какие-нибудь дополнительные рекомендации, чтобы выяснить причину? Спасибо.
ZurdoDev
Session. get ("monument") находится в JavaScript, поэтому я понятия не имею, что он делает, и не доверяю ему.
Как вы перенаправляетесь на другую страницу?
s yu
Используя альтернативный подход, теперь я могу передать значение сеанса на другую страницу. Описание приведено ниже:
1) в 1-м aspx создайте скрытую переменную.
2) в 1-м aspx установите значение переменной сеанса;
3) в событии нажатия кнопки (в JavaScript) установите значение скрытой переменной = session variable.
4) После 3) запустите document. getElementById('<%=Button2.ClientID%>'). нажмите кнопку();
5) в коде-позади: Button2_Click(Object sender, EventArgs e) {
Сессия ["памятник"] = Хидденфилд.Ценность;
Ответ.Перенаправление ("2. aspx");
}
6) Когда 2.aspx открыт, значение сеанса["monument"] может быть восстановлено.
Спасибо за Ваш отзыв и ответ.
F-ES Sitecore
"Сеанс", упомянутый в этом коде, не является сеансом сервера, предоставляемым asp.net. Google "набор asp.net session javascript", и вы найдете некоторые трюки, которые позволяют вам установить переменную сеанса из js, наиболее распространенные из них-через вызов ajax или обновление src скрытого тега img и так далее, но ajax-это лучший способ сделать это.
Richard Deeming
Это похоже на ответ для меня. :)