2015-07-02 3 views
0

Я должен обработать операцию в JavaScript, используя данные, хранящиеся в сессии (System.Web.HttpContext.Current.Session["Filtre"])Использование ASP.Net сессии в Javascript

Это даже можно поймать и сделать операцию в JavaScript, с помощью сеанса ASP.NET?

Я уже попробовал некоторый образец, как этот без успеха:

var f = '<%=Session["Filtre"]%>'; 

В том случае, когда это невозможно (по вопросам безопасности, я думаю), можно вызвать функцию aspx.cs в JavaScript, который будет выполнять операцию?

Удачного дня.

+0

Почему вы не храните свою информацию во время Page_Load в переменной, а затем получаете доступ к этой переменной на своей странице? –

+0

Поскольку мой проект использует iframe, а мой компонент .ascx не перезагружается на каждой странице. –

ответ

0

Вы не можете смешивать на стороне клиента яваскрипт и на стороне сервера код (например, сеансов). Процессы выполняются в , а не.

Ваш код

var f = '<%=Session["Filtre"]%>'; 

может работать, НО:

  • Первый сервер должен выполнить <% %> блок, чтобы сгенерировать строку, которая помещается в какой-то текст
  • Этот текст отправлено в браузер, возможно, как часть страницы
  • Только в браузере это интерпретируется и выполняется как javascript

Нет Простой Способ для браузера выполнять произвольный код сервера. Сложный способов использовать вызовы AJAX для вызова специально разработанных методов на сервере (вместо произвольного кода).

0

Да, ваш JavaScript может вызвать метод C#, если вы комментируете метод с помощью WebMethod. Это делает метод доступным для удаленных веб-клиентов (т. Е. Становится «методом страницы»). MSDN.

Для использования сессии вам понадобится свойство EnableSession. Пример:

[WebMethod(EnableSession=true)] 
public static int Example() { 
... 

Затем вызовите метод страницы из JavaScript, вероятно, using jQuery.

$.ajax({ 
     type: "POST", 
     url: "MyPage.aspx/Example", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     data: "{ }", 
     error: function (XMLHttpRequest, textStatus, errorThrown) { alert(langError + " " + textStatus); }, 
     success: function (msg) { 
      alert(msg.d); 
     } 
    }); 
+0

Я не уверен, действительно ли атрибут EnableSession необходим для методов страницы (vs web methods) и в настоящее время у меня нет доступа к моей среде разработки, но вы можете попробовать. –

Смежные вопросы