2009-05-07 26 views
2

Ich habe eine Notwendigkeit, alle gerenderten Ausgabe/HTML einer Ansicht zu erfassen, so dass ich das Ergebnis persistieren kann. Wie kann ich dies in ASP.NET MVC tun?Capturing-Ausgabe in ASP.NET MVC

+0

Ich glaube, Sie ein schreiben müssen httpmodul, aber ich bin nicht ganz sicher ... – eKek0

+0

Nur um zu klären, ich bin mir dieser Lösung bewusst. Ich bin nur neugierig zu sehen, ob es noch einen anderen Ort gibt, an dem man sich in den MVC-Stack einklinken kann, um die Informationen zu erfassen. – jbenckert

Antwort

0

MVC Ansichten Ausgang mit dem Antwortstrom über ein Objekt in der Htmltextwriter Httpcontext. Eine Möglichkeit, Ihre Aufgabe zu erfüllen, besteht darin, das vorhandene HttpContext-Objekt durch ein neues zu ersetzen, das einen HtmlTextWriter enthält, der anstelle des Antwort-Streams einen StringBuilder ausgibt.

Dies ist relativ einfach, wenn ein wenig kompliziert und wird im Detail in diesem Blog-Eintrag behandelt: http://andrewlocatelliwoodcock.com/2011/04/28/capturing-the-output-of-a-view-as-a-string/

ich diese Technik verwendet haben erfolgreich Ansicht Ausgabe zu erfassen, wie sie an den Browser gesendet wird.

Vergessen Sie nicht: Wenn Sie tatsächlich die Darstellung als auch wollen, um zu sehen, wenn Sie die Ausgabe erfasst haben Sie es auch Strom auf die Antwort zu schreiben, müssen ...