2013-09-09 3 views
0

У меня есть SearchModel, который содержит параметр поиска и результаты поиска. Это передается из моего SearchController в мое представление. В представлении параметры поиска заполняются в форме поиска, и результат поиска отображается как таблица.Экспорт таблицы в excel

В представлении у меня есть ссылка, которая должна генерировать файл excel, содержащий таблицу. Сначала я пытался передать модель обратно в SearchController, используя другое имя действия. Однако переданные данные (SearchModel) равны нулю.

После поиска, кажется, что я не должен передавать данные из представления в контроллер.

Каков правильный способ сделать это? Я не хочу снова запрашивать базу данных и генерировать результат поиска. Данные были сгенерированы в результате действия индекса, переданного на представление. Есть ли способ вернуть это обратно?

ответ

1

Лучший и «правильный» способ - снова запросить базу данных. Когда исходный вид был сгенерирован, все компоненты, которые работали вместе для его создания (контроллер, репозитории и т. Д.), Скончались. Их больше нет. Вы можете сохранить данные в памяти на сервере, но это обычно не рекомендуется, если одни и те же данные, вероятно, будут часто использоваться повторно. И, предположительно, не все пользователи хотят экспортировать данные, поэтому вы будете хранить данные в значительной степени без каких-либо причин.

Однако, если это может быть использовано повторно, вы можете использовать кеширование. http://www.asp.net/web-pages/tutorials/performance-and-traffic/15-caching-to-improve-the-performance-of-your-website

+0

Это простой сайт, и добавление кеширования - это слишком много. Думаю, регенерация данных будет моим выбором. Благодаря! –