2009-07-02 8 views
1

J'ai une page "Résultats" avec un formulaire et quand "soumettre" est cliqué, le formulaire est soumis à une autre action. Jusqu'à présent, tout va bien ...ASP.NET MVC - Comment transmettre des données FormCollection dans une publication à une autre action?

Mais, cela fonctionne bien si l'utilisateur est connecté. Sinon, il sera redirigé vers la page "Connexion" et mon FormCollection perd ses données.

Existe-t-il un moyen de conserver ces données sans utiliser TempData?

Merci!

Répondre

3

Je ne pense pas que ce soit possible. La seule chose que le système se souvient lors de la redirection vers la page de connexion est le 'return url'. Aucune donnée de post n'est sauvegardée (cela peut être des mégaoctets de données ...)

Vous pouvez utiliser l'objet Session comme alternative, ou assurez-vous que l'utilisateur est connecté avant de publier.

Ou, si elle est juste un résultat de recherche, essayez de vivre sans le POST, et utiliser un GET (qui a également d'autres avantages)

+0

Merci Chris! Existe-t-il un moyen de sauvegarder cette FormCollection dans un cookie? – AndreMiranda

+0

Pas facile. Seulement si votre action POST ne nécessite pas de connexion utilisateur, enregistre à la place le FormCollection dans un cookie, puis redirige vers une autre action qui nécessite une connexion. Mais je ne recommanderais pas de le faire de cette façon ... – chris166

1

Je préférerais interdire un utilisateur non autorisé à visiter des « Résultats » ou le moins pour lui montrer le message "Veuillez vous connecter d'abord" au lieu du formulaire.

Questions connexes