J'utilise TempData pour conserver ModelState pendant les redirections (en utilisant la technique MvcContrib). Cela fonctionne bien. Cependant, dans de rares cas, l'utilisateur interrompt la demande et en déclenche immédiatement une autre (par exemple, clique rapidement sur un autre élément de menu). Cela provoque des erreurs ModelState à apparaître sur cette page, à laquelle il n'appartient pas.ASP.NET MVC TempData utilisé pour une requête incorrecte
Le problème est que TempData est stocké dans Session. Cela signifie que TOUTES les demandes peuvent l'attraper, par ex. celui qui vient en premier au serveur.
Y a-t-il des solutions de contournement connues? Par exemple. Conservez la "page de destination" dans TempData avec ModelState enregistré.
Ma question concerne exactement les "actions qui redirigent immédiatement". Problème ne se produirait pas si je rends juste la vue après l'attribution de tempdata. Et TempDate _DO_ utiliser Session donc ce conseil n'a aucun sens. Le problème est qu'il n'y a pas de "redirection immédiate" - une autre requête provoquée par un clic de l'utilisateur peut l'annuler et venir ensuite. Quant à sérialiser ModelState dans la vue, j'y ai pensé, mais merci pour le lien. – queen3
Non, je ne peux pas sérialiser en vue. Le flux est "get POST - vérifier les erreurs - set ModelState - rediriger vers la page qui affiche les messages". Il n'y a pas de "vue" entre "vérifier les erreurs" et "page qui affiche des messages". – queen3