ASP.NET MVC - Совместное использование состояния сеанса между контроллерами

Я все еще в основном незнаком с Инверсией Контроля (хотя я узнаю об этом сейчас), поэтому, если это решение моего вопроса, просто дайте мне знать, и яВернусь к изучению этого.

У меня есть пара контроллеров, которые нуждаются в переменной Session, естественно, ничего особенного не произошло из-за того, как Session работает в первую очередь, но это заставило меня задуматься о том, каков самый чистый способ разделения связанных объектов между двумя отдельными контроллерами. В моем конкретном сценарии у меня есть UploadController и ProductController, которые работают вместе для загрузки файлов изображений. Поскольку файлы загружаются UploadController, данные о загрузке сохраняются в сеансе. После этого мне нужно получить доступ к этим данным Session в ProductController. Если я создаю свойство get / set для переменной Session, содержащей информацию о загрузке в обоих контроллерах, я 'Я смогу получить доступ к этим данным, но в то же время яЯ буду нарушать все виды СУХОГО, не говоря уже о создании, в лучшем случае, запутанного дизайна, где объект разделяется и изменяется двумя полностью отключенными объектами.

Что ты предлагаешь?

Точный контекст:

Загрузка файла View публикует файл в UploadController.ImageWithpreview (), который затем считывает опубликованный файл и копирует его во временный каталог. После сохранения файла другой класс создает эскиз загруженного изображения. Путь к исходному файлу и сгенерированному эскизу затем возвращаются с помощью JsonResult в обратный вызов javascript, который обновляет некоторое динамическое содержимое в форме на странице, которая может быть "Сохраненный» или же "Отменено», Сохранено ли загруженное изображение или оно пропущено, мне нужно либо переместить, либо удалить как его, так и созданный эскиз из временной директории. Для этого UploadController отслеживает все загружаемые файлы и их миниатюры в поддерживаемом сеансом объекте Queue.

Вернемся в представление: после заполнения формы сгенерированным эскизом загруженного изображения форма отправляется обратно в контроллер ProductsController, где идентифицируется выбранный файл (в настоящее время я сохраняю имя файла в скрытом поле, которое, как я понимаю, является ужасная уязвимость), а затем скопировать из временного каталога в постоянное место. В идеале я хотел бы просто получить доступ к очереди, которую я сохранил в сеансе, чтобы форма не содержала местоположение изображения, как сейчас. Вот как я представлял свое решение, но яБуду с нетерпением слушать любые комментарии или критику.

Ответы на вопрос(2)

Ваш ответ на вопрос