2009-04-14 2 views
1

В HttpModule, я ставлю позицию в контексте, например:Почему я не могу установить элемент в HttpContext в модуле, а затем вернуть его в свой обработчик?

HttpContext.Current.Items.Add("MyKey", "Hello world!"); 

Непосредственно под этим кодом (по-прежнему внутри модуля), я могу получить эту строку из коллекции, так что я знаю, что это был добавлен ,

Ускоренный переход к моему фактическому обработчику (веб-форма - .aspx). Я пытаюсь вернуть этот товар:

string myString = HttpContext.Current.Items["MyKey"].ToString(); 

К сожалению, это NULL - предмета нет.

я закрутил коллекцию, и к тому времени, он попадает в мой обработчик, коллекция предметов имеет два ключа:

  • AspSession
  • AspSessionIDManagerInitializeRequestCalled

После того как я установить позицию в модуль, я вызываю RewritePath. Не уверен, что это имеет к этому какое-то отношение.

ответ

0

Моя проблема заключалась в том, что там была переадресация. Таким образом, запрос, в котором я установил значения и запрос, где я прочитал эти значения, был фактически двумя отдельными запросами. Это происходило так быстро, что я не заметил, даже при отладке.

0

Не совсем понятно о потоке вашего кода, но попробуйте использовать HttpContext.Items вместо коллекции HttpContext.Current.Items. Посмотрите эту ссылку - http://odetocode.com/articles/111.aspx

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

  • Нет связанных вопросов^_^