Как я могу использовать jQuery Ajax и PageMethods с переменными экземпляра? - PullRequest
0 голосов
/ 07 октября 2010

Одна из причин, по которой мы в настоящее время используем UpdatePanels для выполнения нашего AJAX, заключается в том, что наши уровни BL и DA передаются вокруг Page.User.Identity для аутентификации.

Есть ли способ доступа к этому?

Ответы [ 2 ]

2 голосов
/ 07 октября 2010

Да, вы можете получить текущего пользователя через HttpContext.Current.User. Из документации MSDN для Page.User:

Это свойство использует HttpContext Пользовательское свойство объекта для определения где запрос происходит.

Что касается вашего более широкого вопроса: «Как я могу использовать jQuery Ajax и PageMethods с переменными экземпляра?» Ответ "не напрямую".

Ни один экземпляр вашей страницы не создается при выполнении метода страницы. ( Почему методы страниц ASP.NET AJAX должны быть статическими? - это отличный концептуальный обзор различий между обычными операциями страниц и статическими методами страниц). Единственный способ получить доступ к переменным экземпляра в методах страницы - это сначала поместить переменные в Session во время начального запроса страницы - но это довольно хрупкая стратегия: вам лучше найти другой способ получить данные или значения в вопрос.

0 голосов
/ 07 октября 2010

Я согласен с ответом Джеффа Стернала на этот пост. В моем текущем проекте мы часто используем сессию как «блокнот» для хранения данных для последующего использования веб-сервисами PageMethods и ASMX.

Однако, если вам не нравится использовать сессию таким образом, вот другой подход, который должен быть жизнеспособной альтернативой:

Во время создания страницы вы можете поместить значения переменных экземпляра в переменные javascript или в скрытые поля. Оттуда они могут быть легко доступны через javascript / jquery и включены в качестве параметров при обращении к веб-сервисам. Затем вы можете кодировать свои веб-сервисы (PageMethods, сервисы ASMX или другие), чтобы принимать эти значения в качестве параметров.

...