Toon posts:

Pagina die op je scherm staat exact zo doormailen ASP.net

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Dit misschien een beetje een rare vraag, en de topic header is denk ik niet helemaal duidelijk.

Maar ik heb een ASP.net site gemaakt geschreven in C#, nu krijgen gebruikers op het laatst een overzicht met de gegevens die ze hebben ingevoerd, en wil ik ze een bevestiging via mail sturen.

Nu kan ik natuurlijk de hele pagina weer opnieuw gaan aanmaken en de database weer gaan uitlezen of de Arraylisten en zo de mail versturen.

Maar eigenlijk staat de HTML code al precies zo op de CLIENT van de klant.

Nu is mijn vraag of het mogelijk is om tegen de ASP server te zeggen, dit is een ASPX pagina stuur deze in HTML vorm na dit Email adres door.

(Aspx pagina in HTML mailen)

En natuurlijk zo ja hoe en heeft iemand daar een link na of informatie over.


Ik hoop dat jullie snappen wat ik bedoel

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11-2025

OkkE

CSS influencer :+

Denk dat 't niet kan, maar totaal geen verstand van ASP.net.

Maar... Het lijkt me ook sowieso beter om de email-body wel eventjes opnieuw samen te stellen. Zo kun je gelijk een plain-text versie maken, dat is wel zo netjes voor mensen die geen html-mail willen of kunnen ontvangen. :)

[ Voor 11% gewijzigd door OkkE op 05-01-2006 17:10 ]

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


  • xtra
  • Registratie: November 2001
  • Laatst online: 19-11-2025
Persoonlijk zou ik de pagina ook opnieuw opbouwen voor een mail. Dit lijkt me de meest eenvoudige methode.
De pagina wordt normaal opgebouwd/geparsed terwijl hij wordt verzonden naar de client. Volgens mij is er geen manier om dit 'af te vangen' en te hergebruiken.
Met JMail kun je de body-tekst uit een url halen waardoor je hetzelfde effect krijgt. Alleen mis je dan je sessieinformatie waardoor je in de meeste gevallen alsnog van alles aan moet passen.

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Je kunt de body van je response opvragen in code, maar het probleem is een beetje in welke fase van de pagina je dit moet doen. Sowieso moet het na de Render fase, omdat je de output van de pagina wilt afvangen (even ervan uitgaande dat je niet alles met Response.Write opbouwt). Je zou dan aan de OnBeforeUnload fase kunnen kijken, maar ik weet niet zeker of je daar toegang hebt tot het hele Response object omdat die al weggestuurd is (denk ik).

Als je met ASP.NET 2.0 werkt, zou je met behulp van cross-page postbacks het volgende kunnen doen:
Laat de orderbevestigingspagina niet naar de user gaan, maar laat hem postbacken naar een andere pagina. Die pagina leest vervolgens de gepostbackte pagina uit, stuurt de mail en stuurt daarna de pagina door naar de gebruiker.

Cross-page postbacks werken zo dat een pagina als een soort subpagina wordt behandeld. de hele subpagina wordt geevalueerd en gerenderd, maar is als object beschikbaar voor je hoofdpagina, die dan (als het goed is) ook de hele uiteindelijke response kan uitlezen.

Ik zou het je echter niet aanraden, omdat je zaken als forms, viewstate en weetikveel wat niet in een mailtje wilt doorsturen omdat het overhead is en geen nut heeft. Dus als ik jou was zou ik gewoon een apart statusreport maken en die e-mailen.

[edit] ik realiseer me trouwens dat wat ik zei niet echt zin heeft aangezien postbacks aan de clientside plaats moeten vinden. Tenzij je bij de orderbevestiging nog een knop 'Bevestigen' ofzoiets hebt.

[ Voor 11% gewijzigd door Not Pingu op 05-01-2006 17:33 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


Verwijderd

Topicstarter
Bedank voor jullie reactie's

En moet dus inderdaad de pagina opnieuw gaan opbouwen, omdat dit dus niet zomaar af te vangen is.

Ik kan geen gebruik maken van 2.0 maar moet gebruik maken van framework 1.1 dit komt door de internet hosting ;(


Dus maak het maar opnieuw aan