J'ai des actions dans différents contrôleurs qui doivent vérifier une condition avant l'exécution. Si la condition n'est pas remplie, je souhaite que l'utilisateur soit redirigé vers une autre page avec des instructions sur la procédure à suivre (les instructions incluront un lien que l'utilisateur doit suivre).ASP.NET MVC - Rediriger vers un contrôleur/une action en transmettant des données
Par exemple l'action SendMessage() est situé dans le contrôleur de message:
public ActionResult SendMessage()
{
// check if user has enough credit
if (!hasEnoughCredit(currentUser))
{
// redirect to another page that says:
// "You do not have enough credit. Please go to LinkToAddCreditAction
// to add more credit."
}
// do the send message stuff here
}
Je veux avoir une seule action générique appelé ShowRequirements() situé dans le contrôleur Requirements.
Dans l'action SendMessage(), je voudrais définir le message que je veux montrer à l'utilisateur, puis transférer l'utilisateur à l'action ShowRequirements(). Je ne veux pas que le message apparaisse dans l'URL de l'action ShowRequirements.
Est-il possible de communiquer ces données à l'action ShowRequirements()?
Ceci est probablement la meilleure solution, mais il semble que vous pourriez vouloir reconsidérer votre logique métier. Pourquoi deux actions disjointes doivent-elles se produire ensemble, connectées via une redirection pour qu'un processus se produise? Peut-être avez-vous besoin d'abstraire du code? –
Correct. Vous pouvez juste retourner l'affichage (avec ViewData/ViewModel) requis pour afficher l'erreur sans la redirection –
Andrew, je ne peux pas penser à un autre moyen de vérifier ces conditions et d'agir en conséquence. Comment allez-vous faire le même scénario? – xraminx