Могу ли я использовать Session в MVC для передачи (ссылки) объектов от контроллера к контроллеру? - PullRequest
0 голосов
/ 23 марта 2020

Общая цель : я преобразовываю проект "Клиент" из решения с 4 проектами (Клиент / Домен / Данные / Тестирование) и превращаю Клиента в MVC. Предыдущая версия программы была консольной. Программа имитирует «заказ» еды.

Жизненный цикл пользователя basi c: вход в систему, выбор еды, добавление еды в корзину (заказ). Сейчас я пытаюсь преобразовать его в веб-приложение.

Проблема :

Я хочу добавить объект питания в объект заказа. Этот объект заказа будет добавлен к объекту клиента. Однако я не могу определить способ доставки заказа, созданного при входе через контроллер учетной записи, в мой контроллер продуктов питания, где я создаю еду / хочу добавить ее в заказ.

Когда это была консольная строка В приложении было проще изменить область действия, так как я мог просто поместить процесс настройки питания в while-l oop (то есть «при оформлении заказа») и объявить / инициализировать объект заказа за пределами l oop. Однако теперь, когда это MVC, я не могу понять, как это сделать иначе.

То, что я пробовал: Я посмотрел в Session / TempData. Учитывая, что я хочу, чтобы заказ длился, пока пользователь вошел в систему, я решил, что сессия - это путь к go. Из того, что я увидел, казалось, что только для сессии могут быть установлены строки / int32s. Таким образом, я не могу дать своему FoodController прямой доступ к созданному заказу. Затем я попытался обойти, сохранив заказ в базе данных. Я взял первичный ключ созданного заказа, сохранил его в объекте Session как int, находясь в AccountController, и получил ключ в моем FoodController. Затем я попытался найти объект по ключу, используя Context.Set<T>().Find(id); в моем хранилище. Затем ... Я столкнулся с ошибками, когда что-то не конвертировалось прямо из Int64 в Int32.

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

Я ценю помощь.

...