Ett FULLT CODE-formaterad KOPIA AV Denna artikel finns PÅ CODEGOLEM BLOGG Omdömen
UPPDATERING: Du kan också läsa den här artikeln om kodning av en REUSABLE HJÄLPREDA MAILER CLASSable att skicka mallade e-post med inbäddade bilder
Kom ihåg att du kan använda alla Usercontrol, med någon form av barnkontroller i it.For exempel kan detta vara en orderbekräftelse mail, med en GriView bunden till en Datatable .eller kanske en användarregistreringsmail, med hjälp av en Formview som en sammanfattning av användarens profildata.
Omdömen
Jag kommer att använda en enkel Usercontrol med en enda etikett, bara för att visa hur det hela fungerar. Omdömen < p> [code: html] Omdömen
Hej Omdömen
Det här är en Usercontrol baserad postmall [/code] Omdömen
Detta är en Usercontrol som de som vi brukar använda i vår. webbprojekt. Omdömen
Jag använder här en etikett som en platshållare för destinationen name.We kan använda så många sådana etiketter som behövs i vår mall, eller till och med bilder, så länge deras ImageURL är satt till absoluta URL: er .
Andra steget: förklara ett gränssnitt för vår mall Omdömen
[code: C #]. offentligt gränssnitt IMailTemplate {string DestinationName {få; uppsättning; }} [/code] Omdömen
Vi kommer att få tillgång till vår mall fält via detta gränssnitt Omdömen
Låt oss ändra vår Usercontrol är codebehind att det implementera IMailTemplate gränssnittet Omdömen
[code..: C #] partiella offentliga klass TemplateMailer_MailTemplate: System.Web.UI.UserControl, IMailTemplate {public string DestinationName {få {return DestinationNameLabel.Text; } Set {DestinationNameLabel.
Text = värde; }}} [/Code] Omdömen
Vår DestinationName egendom blir och ställer in värdet för Label vi använde som en platshållare. Omdömen
Slutligen, för att slutföra denna lite magi, här är koden för att skapa a. MailMessage med hjälp av HTML-kod som genereras av vår mall Usercontrol Omdömen
Säg att vi har en ASPX sida med en knapp för att skapa och skicka e-mail.This kan vara en enkel genomförandet av dess OnClick händelsehanterare:
[code: C #] skyddade void SubmitButton_Click (objekt avsändare, EventArgs e) {kontroll mailTemplate = LoadControl ("MailTemplate.
ascx"); ((IMailTemplate) mailTemplate) .DestinationName = "Destinationsnamn"; Stringstring = ny String (); StringWriter stringWriter = new StringWriter (String); HtmlTextWriter htmlTextWriter = new HtmlTextWriter (stringWriter); mailTemplate.Ren