Рейтинг:
4
phil.o
Session
собственность вас CardexController
экземпляр, несомненно, равен нулю.
Пришло время поставить точку останова на линии, которая инициализирует контроллер, и нажать клавишу F5.
Тот факт, что свойство Session ожидает некоторого экземпляра объекта, реализующего данный интерфейс (я просто экстраполирую из того, что вы написали, так как у меня нет формального определения класса), не означает, что вы не должны предоставлять ему действительный экземпляр.
bahman.01
Я не могу понять, что вы подразумеваете под "свойством сеанса", ожидающим некоторого экземпляра объекта, реализующего данный интерфейс"
phil.o
С какой частью предложения у вас возникли проблемы?
bahman.01
Вот реальный код в первом контроллере:
public void checkItem(string id)
{
if (Session ["cmstr"] = = null)
Сессия.Добавить ("cmstr", id);
ещё
Сеанс ["cmstr"] = id;
Cardexcontroller controller = новый CardexController();
контроллер.cmstr = идентификатор;
контроллер.Сессия.Добавить ("cmstr", id);
контроллер.Индекс();
}
и это код во втором контроллере под названием " CardexController" :
индекс public ActionResult()
{
var item = Session ["cmstr"];
if (item = = null)
return PartialView ("~/Views/RcvAccount/RcvAccountCustomer/_RcvAccountCustomerPartial.cshtml");
ещё
return PartialView ("~/Views/RcvAccount/RcvAccountCardex/_RcvAccountCardexPartial.cshtml");
}
Что я должен написать в приведенной ниже функции?
публичный CardexController()
{
}
phil.o
Пожалуйста, избегайте кода в комментариях; это вряд ли читается. Вместо этого вы должны использовать зеленую кнопку "улучшить вопрос" и поместить туда код с правильным форматированием.
Из того, что я вижу, проблема может заключаться в том, что вы создаете новый CardexController в checkItem
метод. Поскольку вы назначаете его локальной переменной, эта переменная становится нулевой в конце метода. Таким образом, в основном ваш код просто создает новый CardexController каждый раз, когда выполняется метод, выбрасывая его в конце.
Возможно ли, что у вас уже есть экземпляр CardexController где-то в другом месте, который вы должны использовать вместо него?
И public CardexController() { ... }
это не объявление функции, это определение класса. Я не знаю, вызвана ли эта ошибка плохой формулировкой или неполным знанием. У меня такое чувство, что есть некоторые ключевые понятия ООП-программирования в целом и MVC в частности, которые вам еще предстоит изучить и понять.