2009-05-07 7 views
2

J'ai besoin de capturer toutes les sorties rendues/html d'une vue afin que je puisse persister le résultat. Comment puis-je faire cela dans ASP.NET MVC?capturer la sortie dans ASP.NET MVC

+0

Je pense que vous avez besoin d'écrire un httpmodule, mais je ne suis pas tout à fait sûr ... – eKek0

+0

Juste pour clarifier, je suis au courant de cette solution. Je suis juste curieux de voir s'il y a un autre endroit pour accrocher dans la pile de mvc pour capturer l'information. – jbenckert

Répondre

0

MVC sortie Vues dans le flux de réaction par l'intermédiaire d'un objet HtmlTextWriter dans le HttpContext. Ainsi, une façon d'accomplir votre tâche consiste à remplacer l'objet HttpContext existant par un nouveau qui contient un HtmlTextWriter qui est envoyé à un StringBuilder plutôt que le flux de réponse.

C'est assez simple si un peu compliqué et est couvert en détail dans ce billet de blog: http://andrewlocatelliwoodcock.com/2011/04/28/capturing-the-output-of-a-view-as-a-string/

Je l'ai utilisé cette technique pour capturer avec succès Afficher la sortie car il est envoyé au navigateur.

Ne pas oublier: si vous voulez vraiment voir la vue aussi bien, une fois que vous avez capturé la sortie, vous aurez également besoin de l'écrire dans le flux de réponse ...

Questions connexes