rendering einer aspx-Seite in einem anderen
In meinem web-Projekt business-Objekt-editor-Seite, ich schicke eine E-Mail-Benachrichtigung an den administrator, wenn ein Objekt einzufügen oder zu aktualisieren. Aber anstatt das senden einer nur-text-mail, die ich senden möchten, die html-Ausgabe von einem anderen aspx-Seite(Benachrichtigung.aspx), die ich einfach für diesen Zweck vorbereitet.
Zuerst dachte ich, ich erstelle eine Instanz von Notification.aspx verwenden Sie dann die RenderControl-Methode für die Ausgabe.
Jedoch in der codebehind-Editor.aspx-Seite, ich kann nicht einmal erreichen die Benachrichtigung Verweis auf eine neue Instanz erstellen.
Ich Frage mich, was die beste Praxis für be-und Rendern einer Seite in ein anderes...
Dank.
InformationsquelleAutor koraytaylan | 2009-03-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie das Rendern einer Seite, dies zu tun:
danke. gemacht, dass der trick in der einfachsten Weise 🙂 jetzt habe ich auch Fragen, kann ich diesen Prozess asynchron? denn es dauert einige Zeit, die zum generieren der html-mail-body
Ich würde das tun, indem Sie erstellen einen neuen Thread, setzen Sie den render-code in einer Methode. Und führen die Methode in den neuen Thread.
InformationsquelleAutor MartinHN
Sehen, diese Frage/Antwort: Kann ich HTML/E-Mail-Vorlagen in C# auf ASP.NET?. Daneben Brackett hat, was Sie suchen, aber es gibt viele andere hilfreiche Ratschläge gibt es auch.
InformationsquelleAutor John Rudy
Die page-Klasse, die instanziiert wird, durch die ASP.NET Laufzeit wenn ein Antrag gestellt wird. So können Sie eine Anfrage und erhalten Sie das erfassen der Antwort:
InformationsquelleAutor Darin Dimitrov
Klingt schwierig. Beachten Sie die Seite, müssen eine entsprechende HttpContext als auch, um korrekt wiedergegeben werden.
Ich würde überlegen, ein UserControl statt. Diese können einfach geladen und gerendert mit der
Page.LoadControl()
Methode. Mit ein bisschen jiggery-pokery, Sie können halten Sie es aus der Darstellung in der Seite während der Extraktion ist es HTML.InformationsquelleAutor Tor Haugen
RenderControl wird nicht funktionieren, weil die Seite nicht gehen durch den gesamten Lebenszyklus. Ich habe einen HttpHandler und eine Antwort.Filter erfassen den Strom in der Vergangenheit für ähnliche Zwecke. Ich habe gepostet-code über die ASP.NET Foren zuvor.
Edit: Wenn Sie ändern müssen, Seite Ausgabe, kombinieren Sie diese mit der Server.Ausführen überlastung hingewiesen von MartinNH. Das würde den code vereinfachen, entfernen die Antwort.Filter und so. Wenn Sie nur wollen, dass die Seite direkt ausgegeben, MartinNH Methode ist sehr sauber.
InformationsquelleAutor Mark Brackett
dies ist, was Sie suchen:
von hier aus nutzen Sie Ihre Fantasie....
InformationsquelleAutor ygaradon