Dans ASP.NET MVC, comment ne réponse.redirection de travail?
J'ai utilisé de la réponse.redirection en ASP classique et ASP.NET webforms. Cependant, avec MVC 2.0, je suis en cours d'exécution dans quelque chose de singulier.
J'ai une méthode dans une classe de contrôleur qui est utilisé par plusieurs méthodes de contrôleur pour aider à charger et valider certaines informations. Cette méthode est configuré pour rediriger si un problème est découvert à un message d'erreur générique de la page.
Le gros problème que j'ai remarquer c'est que l'appel de la classe de contrôleur et la vue de la page de tenter de compléter le rendu et le chargement avant de le rediriger effectivement lieu. C'est gênant dans le développement, car la Vue lève des exceptions que j'ai besoin de l'ignorer avant de ma page d'erreur générique enfin charges.
Comme mentionné ci-dessus, je suis habitué à l'ancien modèle de réponse.redirection qui a empêché le code suivant sur une page d'être exécuté en tant que nouvelle page serait alors à la charge.
L'aide ou des conseils sur les redirections en MVC serait grandement apprécié.
- Avez-vous déjà entendu parler d'un outil de diagnostic appelé "Fiddler"? Vous trouverez peut-être très utile pour voir ce que vos pages sont faites.
- Je prends ce que vous appelez
Response.Redirect
dans votre méthode privée? - la réponse.redirection est dans la méthode privée, je pense que c'est une partie du problème ici.
Vous devez vous connecter pour publier un commentaire.
Les classiques mécanisme de redirection en ASP.Net MVC est de retourner un objet de type RedirectResult pour le client. Si cela est fait avant votre point de Vue de la méthode est appelée, vos méthodes de vue ne sera jamais appelé.
Si vous appelez de Réponse.Rediriger vous-même, au lieu de laisser Asp.Net MVC en face avant du contrôleur de le faire pour vous, votre méthode de contrôleur continuera jusqu'à ce qu'il termine ou lève une exception.
La idiomatiques solution pour votre problème est d'avoir votre méthode renvoie un résultat de votre contrôleur peut utiliser.
par exemple:
Response.Redirect
?Dans ASP.NET MVC, vous le feriez normalement rediriger vers une autre page, en retournant un
RedirectResult
à partir de la méthode du contrôleur.Exemple:
MVC n'utilisez jamais de Réponse.Redirection
utilisation
À POURQUOI de ne PAS utiliser la Réponse.Redirection en MVC:
ses recommandé et c'est le seul moyen pour rediriger vers asp.net forme mvc contrôleur de l'action en utilisant
autre moyen nous pouvons rediriger en utilisant ( pas recommandé, et le mauvais sens )
il va travailler pour rediriger, mais le problème c'est que cela va effacer toutes nos valeurs de Session. alors pourquoi ses pas recommandé.
essayer ce code dans mvc afficher la page lode