C# не Может проверить, что Сессия существует?

Попробуйте добавить это в свою конфигурацию

  directConnect: true,

Примечание: удалите seleniumAddress из вашей конфигурации, если вы используете directConnect.

Для обновления веб-драйвера перейдите в папку вашего проекта и запустите node node_modules/protractor/bin/webdriver-manager update

16
задан Richard 17 April 2009 в 10:30
поделиться

5 ответов

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

Вам нужно будет сделать это либо в действии (методе), либо (возможно, более уместно) в фильтре действия, либо в Метод OnActionExecuting (и т. Д.):

public abstract class ControllerBase : Controller
{
    protected override void OnActionExecuting(
        ActionExecutingContext filterContext)
    {
        // code involving this.Session // edited to simplify
        base.OnActionExecuting(filterContext); // re-added in edit
    }
}
18
ответ дан 30 November 2019 в 15:56
поделиться

[] - это индексатор, он действует как метод в классе.

В этом случае Session имеет значение null, и вы не можете выполнить индексирование по нему.

Сделайте это:

if(Session != null && Session["value"] != null)
{
   // code
}
21
ответ дан 30 November 2019 в 15:56
поделиться

Вам нужно будет сделать это так-

if(null != HttpContext.Current.Session["Value"])
{
    //Code here.
}
2
ответ дан 30 November 2019 в 15:56
поделиться

Вы получаете эту ошибку, потому что объект "Session" является нулевым. Поэтому невозможно взглянуть на бит ["value"]. Я не знаком с MVC, но либо есть большая проблема, из-за которой объект Session не создается, либо вы обращаетесь к нему не в той точке жизненного цикла, или вам просто нужен тест, чтобы проверить, является ли Session! = нуль.

2
ответ дан 30 November 2019 в 15:56
поделиться

Используемый вами синтаксис:

if (Session["mySessionVariable"] != null)
{

}

... является правильным способом проверки объекта Session в ASP .СЕТЬ. Я подозреваю, что проблема в том, что вы используете ASP.NET MVC.

Может быть, некоторые из наших экспертов MVC могут рассказать нам о правильном способе сделать это в ASP.NET MVC.

Редактировать: Я вижу, что Марк Гравелл опубликовал свой ответ, пока я печатаю это. Это должно быть осветительно.

1
ответ дан 30 November 2019 в 15:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: