J'essaie de trouver une bonne façon de gérer le scénario suivant (je suis encore un peu nouveau à ce sujet):ASP.NET MVC: Comment gérer TempData cross-action et ViewData
Un utilisateur peut enregistrer via mon site en utilisant un fournisseur RPX/OpenId.
Étape 1: L'utilisateur s'authentifie auprès d'un fournisseur. Le fournisseur renvoie un jeton temporaire à l'une de mes méthodes d'action.
Étape 2: J'utilise le jeton pour saisir les informations de profil de l'utilisateur et charger une vue qui lui permet de saisir les champs obligatoires et les champs facultatifs manquants.
J'utilise 2 méthodes d'action à l'étape 2: Une pour gérer la saisie d'informations à l'aide du jeton. Une deuxième action qui prend les informations d'autorisation et charge la vue des champs manquants/facultatifs.
Je passe les informations d'autorisation via TempData à la deuxième action. La seconde action peut prendre en charge la validation. Il est donc possible que je doive conserver l'objet d'autorisation pour plus d'une requête. Je ne peux pas utiliser le jeton pour régénérer les informations d'autorisation, car il s'agit techniquement d'un jeton à usage unique, et il serait stupide de régénérer la demande car il utilise des ressources réseau.
Comment est-ce que je pourrais persister les objets dans mon TempData pour toutes les demandes ultérieures à la même action, mais supprimer les objets pour toutes les redirections? Et puisque cela peut être un modèle répétable dans mon application devrais-je créer un filtre pour gérer automatiquement cette situation? Par exemple, j'imagine un attribut de filtre qui fusionnera TempData (le cas échéant) dans ViewData - Mais comment pourrais-je conserver mes données dans les appels futurs à la même action? Jetez-le dans TempData à nouveau? Et si je détecte une redirection vide le TempData?
Merci
Après bidouiller pendant quelques heures, j'ai décidé de rajouter les données à TempData . J'ai trouvé que vous ne pouvez plus utiliser TempData.Add car la collection contient déjà la clé. J'ai donc créé ma propre méthode d'extension pour rajouter la clé. – DennyFerra