Domanda

Vorrei costruire un oggetto in diverse fasi in un'applicazione mvc asp.net, ciascun passo essendo una pagina diversa. Il genere di cose che ci si memorizzano nella Sessione in un'applicazione Web.Forms rapido.

Leggere a questo proposito, di sessione non sembra a me come qualcosa di molto MVC'ish asp.net. Tuttavia non posso davvero pensare ad altre alternative a questa situazione come TempData e Viewdata non sembrano adattarsi sia, così forse mi sbaglio.

Naturalmente ho potuto mettere i 4 passi in una sola pagina e mostra / nascondi, ma non è il mio punto con la domanda. Mi piacerebbe sentire la tua opinione su Session in MVC, se si tratta di un buon aproach per questo tipo di problema a più fasi o si tende a farlo in altri modi.

Questo è molto simile domanda in ASP.NET MVC , solo che io non sono alla ricerca di modalità di accesso di sessione, ma se è il modo migliore per risolvere un problema o c'è qualcosa di meglio che mi manca in Asp.Net MVC.

Grazie in anticipo

È stato utile?

Soluzione

Non c'è nulla di non-MVC su Session, è una parte vitale del web e la maggior parte dei siti di usarlo in qualche modo. Davvero hanno due opzioni principali. O memorizzare l'oggetto nel database tra le pagine (che significa risparmio di un oggetto incompleta) o metterlo in sessione. Entrambe hanno vantaggi e svantaggi.

In sessione non c'è bisogno di salvare un oggetto parziale al database, ma se le foglie utente o la sessione scade a perdere tutte queste informazioni. Si può anche portare a una memoria più grande impronta per utente e quando si arriva a scalare che provoca alcuni altri problemi. (Ognuno dei quali può essere risolto utilizzando appiccicoso-sessione su un bilanciamento del carico o negozio sessione di centrale).

Il modo in cui database è meglio in molti modi, ma di solito non si vuole salvare oggetto incompleto al database, un compromesso è quello di creare un altro tavolo e per salvare l'oggetto serializzato a quel tavolo. La sua non passare attraverso le tabelle reali e in modo da non scendere a compromessi sui vostri vincoli del database. (È anche possibile memorizzare i dati della sessione nel database che è fondamentalmente facendo la stessa cosa)

Alla fine il suo un giudizio tra i due modi, ho utilizzato sia nel corso degli anni.

Altri suggerimenti

È possibile passare da una visualizzazione con TempData ... ma devi mantenere passare attraverso viste successive. E 'pensato per essere consumato da successiva richiesta, ma questo non vuol dire che i dati temporanei passaggio potuto a richiesta successiva che mette anche lo stesso i dati in dati temporanei.

Hai provato <%= Html.HiddenField(...) %>?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top