2012-01-31 15 views
5

Ho un sito MVC ASP.NET molto semplice che visualizza le immagini dal database. L'utente compila alcuni parametri di ricerca e una vista restituisce un elenco di immagini dal database che corrispondono ai criteri di ricerca.ASP .NET MVC Memorizzazione di molti parametri tra le viste

Aggiungo ora Paginazione, dove a seconda del numero di pagina salta un certo numero di immagini recuperate dal database. Ho questo lavoro per la prima pagina. I miei parametri di ricerca vengono persi quando faccio clic sulla seconda pagina dei risultati poiché non ho alcun meccanismo in atto per memorizzare i parametri di ricerca tra le viste al momento.

Qual è l'approccio migliore da prendere. Potrei avere molti parametri di ricerca. Devo memorizzarli tutti nella sessione o nei campi nascosti? Sembra un trucco. Devo avere un ViewModel separato per contenere i parametri di ricerca e memorizzarlo nella sessione?

Qual è l'approccio tipico da adottare?

risposta

1

Generalmente si memorizzano i dati di impaginazione incrociata nei campi nascosti. Per la scalabilità, le sessioni dovrebbero essere limitate ai dati relativi alla sessione. Se l'inserimento dei dati nei campi nascosti apre una vulnerabilità, è possibile prendere in considerazione la serializzazione di un modello di vista e crittografarlo come un campo nascosto. Inserirla nell'URL è un'altra opzione, sebbene tu sia limitato alla quantità di contenuti che puoi inserire.

+0

Grazie. Mi piace l'idea di serializzare il modello di visualizzazione e di avere un singolo campo nascosto. Vengo da un background di WPF/WinForms e l'idea di avere molti campi nascosti in una pagina non mi sembra piacevole. Credo che devo conviverci. Ho fatto un po 'più di ricerca e sembra essere l'approccio più comune. – Lance

1

Vorrei inserirli tutti nella QueryString dei collegamenti "Avanti" e "Precedente". Ciò consentirebbe ai visitatori di aggiungere un segnalibro all'URL completo e tornare alla stessa pagina con le stesse impostazioni di filtro e ordinamento.

Problemi correlati