когда вызов одного метода из одного контроллера в другой, сессия контроллера становится нулевой - PullRequest
0 голосов
/ 31 декабря 2018

при вызове метода из контроллера в другой контроллер сеанс становится нулевым

HRPayGenerateController pay = new HRPayGenerateController(_paygenerateService);

Guid[] tabledata = new Guid[1];
tabledata[0]= hrPayGenarate.Id;


_HRPayGenerate.Pay(tabledata);

public dynamic Pay(Guid[] TableData)
{ 
    Guid BusinessUnitId = Guid.Parse(Session["BusinessUnitId"].ToString());
}

в приведенной выше строке отображается нулевая ошибка

1 Ответ

0 голосов
/ 31 декабря 2018

Сеанс заполняется конвейером запросов aspnet.Потому что вы вызываете контроллер вручную, чего вам следует всегда избегать, потому что контроллеры созданы для обработки запросов и не предназначены для вызова вручную, поскольку это нарушает весь конвейер запросов.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...