У меня есть ascx. В этом ascx у меня есть любое количество элементов управления, с которыми я могу взаимодействовать, и установить переменную сеанса, и она работает так, как ожидалось.Почему сеанс недоступен при загрузке страницы?
Однако, когда (в том же управлении), я пытаюсь установить сеанс в загрузке страницы, я получаю другую ошибку в зависимости от того, как я его реализации:
System.Web.HttpContext.Current.Session("Test") = "Test"
Он говорит, что, кратко, то сессия объект ничего.
Если, вместо этого, я говорю:
Session("Test") = "Test"
Затем он говорит мне, что мне нужно, чтобы включить состояние сеанса в любой странице или web.config. Я действительно проверил, и сеанс включен в web.config, и, кроме того, те инструкции сеанса, которые вызываются в ответ на щелчок на элементе управления runat="server"
, отлично работают.
На данный момент я почти уверен, что моя проблема связана с тем, что мне не хватает знаний о жизненном цикле страницы и объекта сеанса. Поэтому у меня есть два вопроса:
Почему это не работает, как я ожидаю? Я подозреваю, что я пытаюсь вызвать Session до того, как какой-либо другой код, который делает его доступным, выполняется, но что это может быть?
Как я могу заставить его работать, чтобы я мог хранить информацию в переменной сеанса при загрузке страницы (а затем очистить ее на странице)? Если я не могу сделать эту работу, как я надеюсь, как я могу сделать что-то подобное на стороне сервера?
Это должно работать, но вы также можете попробовать другой путь, так как ascx имеет ссылку на «страницу», которая имеет ссылку на сеанс: «Страница. Сессия (тест)) =« Тест »' –
Он сообщает мне разрешить сеанс в директиве страницы или web.config. :( – MetalPhoenix
у вас есть 'enableSessionState =" true "' в директиве страницы или web.config? –