Привет,ASP.NET MVC2 Сохранить данные между действиями?
У меня есть вид, который содержит некоторые поля ввода, некоторые из этих полей регулярные входы файлов. При отправке этой формы просмотра файлы будут сохранены в папке temp. Но если есть проблема проверки, обнаруженная на стороне службы, то будет возвращено одно и то же представление (для обновления). Проблема в том, что входы файлов снова не будут заполнены (безопасность), и вместо этого я должен расширить класс просмотра и показать небольшую миниатюру сохраненных файлов, а также сделать возможным удалить (чтобы можно было загрузить другой файл вместо этого).
Когда пользователь нажмет отправить повторно, viewclass не будет содержать никаких данных о сохраненных файлах. Как наилучшая практика для этого?
Моя собственная мысль один из следующих действий:
- Используйте скрытые поля, но это будет сложно, когда класс магазина является сложным, и это также не будет, что обеспечено.
- Использование сеанса для хранения данных, я не вижу, является ли это хорошим или плохим решением?
- Создайте класс singelton (например, кеш), где все эти данные будут сохранены временно. У ASP.NET был кеш, в котором вы могли установить время до освобождения chache, это будет работать одинаково.
- Сохраните объявление как временное в базе данных, это будет означать, что при возврате представления это действительно редактирование созданного объявления, а не редактирование временного объявления (а не в базе данных). Проблема может заключаться в том, что пользователь отменяет после первой проверки работоспособности, тогда у нас будет объявление, которое не будет заполнено в базе данных. Другой минус - увеличение количества идентификаторов (идентификаторов), даже если объявление никогда не используется. И последняя проблема с этим решением заключается в том, что в таблице объявлений будут отображаться неполные объявления.
Отвод советы
Мое решение: я в конечном итоге использовать System.Web.Cache для хранения данных между запросами. Когда объявление создается и принимается, оно будет удалено из кеша и добавлено в базу данных.
О 3-м пункте - вы все еще можете использовать HttpContext.Current.Cache в ASP.NET MVC так же, как вы использовали его в ASP.NET WebForms , – tpeczek
Решетка !, но третья точка будет лучше, чем другая? И если да, то почему? – Banshee