Как я могу поделиться значением переменной между классическим asp, .NET и javascript?

Я создал IHttpHandler в .NET C #, который возвращает фрагменты html на классическую страницу asp.

Классическая страница asp взаимодействует с IHttpHandler посредством базовых HTTP-запросов с использованием ServerXMLHTTP в vbscript или вызовов Ajax в JavaScript.

Теперь мне нужен способ поделиться переменной, которая у меня есть в vbscript, но не в javascript, с приложением .NET.

Во-первых, совместное использование переменной между классическим asp и .net не проблема, так как я могу просто добавить ее в HTTP-запрос. Поскольку переменная недоступна в javascript, я не могу этого сделать в этом случае.

У меня была идея, что я мог бы кэшировать переменную в приложении .NET и использовать кешированную версию для вызовов javascript. Но для того, чтобы это сработало, мне понадобится способ однозначной идентификации «клиента» в .NET ...

Я попытался добавить System.Web.SessionState.IRequiresSessionState в свой HttpHandler и использовать SessionId, но это не сработало, потому что каждый отдельный вызов HttpHandler, кажется, получает новый идентификатор.

Я правильно думаю? Какие у меня здесь варианты?


person Ben    schedule 22.09.2008    source источник


Ответы (4)


Как насчет наличия скрытой переменной на странице, в которой вы можете сохранить значение переменной из сценария vb на стороне сервера ваших страниц asp.

Затем вы можете использовать Javascript для запроса этой переменной для отправки обработчику Asp.Net через ваши вызовы ajax.

person Vaibhav    schedule 22.09.2008
comment
Хм, я должен был упомянуть, что по возможности я бы не хотел выводить переменную на странице ... - person Ben; 22.09.2008

Вы можете поместить свое значение в файл cookie, затем вы сможете читать с помощью javascript и делать с ним что угодно, включая отправку его в запрос в приложение .net ...

person Mauricio Scheffer    schedule 24.09.2008

В итоге я решил проблему следующим образом:

  1. Я отправляю переменные в свой веб-сервис вместе с обычным запросом ws
  2. Я сохраняю значения переменных в хеш-таблице на веб-сервисе и возвращаю хэш-ключ клиенту в скрытом html-объекте (для этого я использовал элемент head <meta>)
  3. В javascript я прочитал это хеш-значение и прикрепил его к http-запросу в качестве значения заголовка.
  4. Когда веб-сервис видит этот хэш-ключ, он ищет соответствующие значения переменных в постоянной хеш-таблице.

Возможно, это не самое лучшее решение, но, похоже, в моем случае оно работает хорошо ...

person Ben    schedule 01.10.2008

Я бы также порекомендовал куки. Вы также можете загрузить значение из базы данных, но это было бы излишним.

person A-Dubb    schedule 30.01.2011