2008-10-31 3 views
0

У меня есть веб-приложение, которое позволяет пользователю выполнять поиск по некоторым критериям, выбирать объект, редактировать его и затем возвращаться к предыдущему поиску. Все редактирование происходит на отдельной странице, связанной с datagrid возвращаемых результатов. Мне было интересно, как лучше всего сохранить предыдущие параметры поиска, чтобы при возврате в сетку они использовали тот же поиск, что и раньше. Лучший вариант, который я придумал, - использовать коллекцию NameValue для каждого из выбранных параметров и сохранить ее в сеансе или в cookie, когда пользователь нажимает кнопку поиска. Любые другие идеи относительно лучшего способа приблизиться к этому?Лучший способ сохранить предыдущие критерии поиска в ASP.NET

ответ

1

В нашем приложении у нас есть десятки списков с полями поиска. Мы разработали простой класс утилиты, который генерирует уникальную строку на основе текущей страницы и сохраняет ее в сеансе.

public static string GenerateSessionKeyFromPage(Page page) 
    { 
     return "__" + page.Request.Path; 
    } 

Это позволяет нам хранить поле поиска без необходимости хранить коллекцию NameValue каждый раз, когда мы добавляем новую страницу.

2

Если это общий запрос (общий для всех пользователей), вы можете захотеть кэшировать результаты и просто привязать к кешированным результатам при возврате в сетку. Это позволит вам сократить расходы на обработку и пропускную способность для повторного вызова.

Если это пользовательский запрос, и у вас есть ресурсы, вы можете захотеть кэшировать результаты.

Если это пользовательский запрос, и у вас нет ресурсов, кеширование параметров (как вы упомянули), вероятно, является лучшим вариантом.

Появление надежной схемы кэширования может быть сложным. Взгляните на memcached, чтобы узнать, как другие его решили (обратите внимание на ASP.NET Memcached Providers).

Смежные вопросы