2009-11-03 3 views
0

J'ai 5 vues dans mon application ASP.NET MVC. Certaines données ont été capturées à partir de ces vues et je navigue à travers ces vues en utilisant 2 boutons: les boutons Précédent et Suivant.Conserver les données des vues lors de la navigation dans plusieurs vues dans l'application ASP.NET MVC

Je remplir les données dans la vue 1 et je vais voir 2 et entrez les données là-bas et ainsi de suite .. jusqu'à 5. Voir

Maintenant, la question est la suivante: Si je reviens à nouveau aux vues précédentes, comment conserver les données saisies dans cette vue particulière.

En outre, je veux soumettre les données de toutes les 5 vues à la fois, une fois que j'ai fini d'entrer des données dans les 5 vues.

Quelle est la meilleure façon de le faire?

Répondre

2

je peux penser à un certain nombre d'approches à votre question. Vous pouvez créer une vue unique avec un certain nombre de «panneaux» qui sont cachés ou révélés en fonction de l'étape que vous êtes dans le processus, comme un contrôle de l'assistant. Vous pouvez essayer d'utiliser un cookie mais ce n'est pas très propre. Idéalement, vous acceptez l'état d'apatridie du modèle MVC et le fait que la vue est une vue du modèle et mettez à jour votre modèle lorsque chaque page affiche sur votre contrôleur et que vous persistez le modèle (quel que soit votre choix) entre les pages. La simplicité peut m'amener à suggérer l'approche «magicien» si vous ne voulez pas persister quoi que ce soit jusqu'à ce que le processus soit terminé. Je suis certain que jQuery pourrait vous aider avec cette solution.

+1

Si mettre tous les formulaires sur une vue est acceptable et que vous utilisez jQuery, je vous recommande fortement de le vérifier: http://www.jankoatwarpspeed.com/post/2009/09/28/webform-wizard-jquery .aspx – Paul

+0

pouvez-vous explorer plus sur "vous persistez le modèle (mais vous choisissez) entre les pages" Une fois que j'ai mis à jour le modèle pour une vue comment puis-je récupérer mes données du modèle? –

+0

Lorsque vous passez d'une page à l'autre, vous utilisez la méthode d'assistance Html.ActionLink pour construire un lien qui transmet une référence unique (probablement la clé d'enregistrement de l'enregistrement actuel de votre modèle) à la page suivante, par exemple Html.ActionLink ("page2", id = Model.ID). En utilisant le routage de base normalement trouvé dans un nouveau projet MVC dans Visual Studio, vous aurez le chemin Controller/Action/ID qui couvrira l'exemple ci-dessus. Je ne peux pas recommander assez le livre de Steven Sanderson sur ASP.NET MVC (http://www.apress.com/book/view/1430210079) – Lazarus

0

Si vous souhaitez uniquement soumettre le contenu une fois toutes les pages remplies, vous devrez probablement stocker les données saisies dans un cookie sur l'ordinateur client. Vous pouvez le faire avec javascript:

http://www.quirksmode.org/js/cookies.html

Questions connexes