Это сводится к базовому ограничению веб-запроса, и каждый запрос по сути «запускается заново».Сессия определенно создана для того, чтобы вы могли хранить вещи за пределами модели запроса, и это единственный вариант, если вы не хотите использовать более продвинутый подход с использованием javascript.
Оформить заказ этот пост , поскольку я уже рассмотрел основные решения для редактирования списка, и некоторые из них применимы здесь.
В вашем случае я бы определенно рекомендовал использоватьмодальное / диалоговое окно для выбора «других» элементов, поскольку это устранит большинство неприятностей, с которыми вы столкнетесь, полностью уйдя со страницы (и если эта страница используется в других местах, вы можете легко повторно использовать частичные представления длязаставить его работать как в диалоге, так и на странице без дублирования).Это потребует небольшого количества javascript, но будет намного проще в управлении, так как форма на самом деле останется на странице, и в большинстве случаев, с которыми я столкнулся, это удобнее для пользователя.
В качестве альтернативы вам может понадобитьсяиспользуйте скрытые данные на других страницах и публикуйте свои данные в процессе выбора.Не вижу многих способов, чтобы это не выглядело ужасно.
В заключение, использование сессии - единственный вариант, если вы не хотите принимать решение на стороне клиента.Я бы порекомендовал клиентское решение, так как jquery значительно облегчил нам жизнь в этих сценариях, но он сложнее.
PS Если вы решите, что диалог - не лучший вариант, и придерживайтесь сессии, не стоитНе беспокойтесь о его масштабируемости, поскольку есть способы сделать его более масштабируемым, используя другие методы хранения сеансов, такие как сервер состояний или даже выделенную для этого базу данных SQL.