2009-12-16 2 views
1

J'ai une forme sur toutes mes pages qui permet à l'utilisateur de sélectionner leur langue. Une fois cette action terminée, je change la langue actuelle pour cet utilisateur, puis je dois m'assurer que je redirige vers la même action que précédemment.Rediriger à l'action précédente après la soumission du formulaire en asp.net mvc

Je ne sais pas quelle est la meilleure approche est de faire en asp.net mvc. Une approche est que sur chaque page, je sauvegarde le contrôleur et l'action en tant que variables cachées dans le formulaire de langue.

L'autre serait de sauver le dernier contrôleur et l'action en TempData puis référencement dans l'action qui définit la langue actuelle.

Toute réflexion sur l'approche ou une autre qui est le mieux pour ce scénario?

Répondre

1

L'URL de demande de la page sur laquelle les formulaires se trouvent contient toutes les informations nécessaires sur le contrôleur et l'action. Ainsi, si vous l'ajoutez en tant que paramètre returnurl (ou simplement ru) au formulaire, vous pouvez rediriger l'action POST vers cette URL au lieu d'essayer de trouver le contrôleur et l'action corrects.

+0

a un sens, je pense aussi de simplement rediriger vers http url referrer. – Jeff

+0

Et en effet c'est la façon dont je recommanderais. – Trimack

+0

@jeff ayant un paramètre ru vous permet de choisir la page pour rediriger l'utilisateur au moment du POST et peut être modifié par une logique côté client. l'utilisation de l'URL de provenance redirige toujours l'utilisateur vers la page qui a déclenché le POST. –

Questions connexes