2012-02-15 2 views
1

Я пробовал это с помощью javascript, но, возможно, есть более простой/лучший способ.Извлечение переменных сеанса .NET из сценария на стороне клиента

У меня есть приложение .NET, которое устанавливает переменную сеанса для кода позади. У меня также есть HTML-файлы на веб-сайте, которые создаются «на лету» и являются статическими, но должны иметь доступ к этим сеансам одинаково (с вероятностью javascript). Значение, если нет набора сеансов, я хочу, чтобы страница HTML перенаправлялась обратно на главную страницу .aspx.

Со следующим, оно всегда дает мне пустую строку, даже если сессия распознана на страницах .aspx, каким-либо образом преодолеть это?

<script type="text/javascript"> 
    function doSomething(){ 
     var someSession = '<%= Session("user") %>'; 
     alert(someSession) 
    } 
</script> 
+0

Вы не можете получить доступ к переменным из HTML, вам необходимо получить доступ к ним с помощью ASP.NET с помощью страницы или оказание услуг. Поскольку вы хотите использовать их в JavaScript, вы можете подумать о написании службы, чтобы вытащить переменную сеанса пользователя с сервера. – Zachary

ответ

1

Статические html-страницы не выполняют никакого кода сервера. Они просто подаются как есть.

<%= Session("user") %> 

по определению включает в себя выполнение кода на стороне сервера. Вот почему он работает на страницах aspx, а не в html.

Способом преодоления этого является преобразование html-страниц в aspx-страницы или использование запроса Ajax для возврата на сервер и получения информации о сеансе из веб-службы или другого метода.

+0

Я попытался разместить код на странице .asp и получил те же результаты. Есть идеи? Из test.asp: ' \t <тип скрипта = "текст/JavaScript"> \t \t функция йоЗотеЬЫпд() { \t \t \t вар someSession = '<% = Session ("пользователь")%>'; \t \t \t оповещения (someSession) \t \t} \t <тело OnLoad = "йоЗотеЬЫпд();"> ' – r584

+0

Я попробовал ваше предложение, но, как @ r584 сказал, что это не работает! – Simone

0

Как уже было сказано, что должна быть активной страницы и правильный код:

var sessionValue = '<%= Session["user"] %>';