Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Joe Stagner
Tailspin Spyworks zeigt, wie außerordentlich einfach es ist, leistungsstarke, skalierbare Anwendungen für die .NET-Plattform zu erstellen. Es zeigt, wie Sie die großartigen neuen Features in ASP.NET 4 verwenden, um einen Online-Shop zu erstellen, einschließlich Shopping, Checkout und Verwaltung.
In dieser Lernprogrammreihe werden alle Schritte zum Erstellen der Tailspin Spyworks-Beispielanwendung beschrieben. Teil 8 fügt eine Kontaktseite, eine Über uns-Seite und Ausnahmebehandlung hinzu. Dies ist der Abschluss der Serie.
Kontaktseite (Senden von E-Mails von ASP.NET)
Erstellen einer neuen Seite mit dem Namen ContactUs.aspx
Verwenden Sie den Designer, um das folgende Formular zu erstellen, und achten Sie besonders darauf, ToolkitScriptManager und das Editor-Steuerelement vom AjaxControlToolkit einzuschließen. .
Doppelklicken Sie auf die Schaltfläche "Absenden", um einen Klickereignishandler in der CodeBehind-Datei zu generieren und eine Methode zum Senden der Kontaktinformationen als E-Mail zu implementieren.
protected void ImageButton_Submit_Click(object sender, ImageClickEventArgs e)
{
try
{
MailMessage mMailMessage = new MailMessage();
mMailMessage.From = new MailAddress(HttpUtility.HtmlEncode(TextBoxEmail.Text));
mMailMessage.To.Add(new MailAddress("Your Email Here"));
// mMailMessage.Bcc.Add(new MailAddress(bcc));
// mMailMessage.CC.Add(new MailAddress(cc));
mMailMessage.Subject = "From:" + HttpUtility.HtmlEncode(TextBoxYourName.Text) + "-" +
HttpUtility.HtmlEncode(TextBoxSubject.Text);
mMailMessage.Body = HttpUtility.HtmlEncode(EditorEmailMessageBody.Content);
mMailMessage.IsBodyHtml = true;
mMailMessage.Priority = MailPriority.Normal;
SmtpClient mSmtpClient = new SmtpClient();
mSmtpClient.Send(mMailMessage);
LabelMessage.Text = "Thank You - Your Message was sent.";
}
catch (Exception exp)
{
throw new Exception("ERROR: Unable to Send Contact - " + exp.Message.ToString(), exp);
}
}
Dieser Code erfordert, dass Ihre web.config-Datei einen Eintrag im Konfigurationsabschnitt enthält, der den SMTP-Server angibt, der zum Senden von E-Mails verwendet werden soll.
<system.net>
<mailSettings>
<smtp>
<network
host="mail..com"
port="25"
userName=""
password="" />
</smtp>
</mailSettings>
</system.net>
Informationen zur Seite
Erstellen Sie eine Seite mit dem Namen AboutUs.aspx, und fügen Sie den gewünschten Inhalt hinzu.
Globaler Ausnahmebehandler
Schließlich haben wir in der gesamten Anwendung Ausnahmen ausgelöst, und es gibt unvorhergesehene Umstände, die auch unbehandelte Ausnahmen in unserer Webanwendung verursachen.
Wir möchten niemals, dass eine unbehandelte Ausnahme einem Websitebesucher angezeigt wird.
Abgesehen davon, dass sie eine schreckliche Benutzererfahrung darstellen, können unbehandelte Ausnahmen auch ein Sicherheitsproblem sein.
Um dieses Problem zu lösen, implementieren wir einen globalen Ausnahmehandler.
Öffnen Sie hierzu die Datei "Global.asax", und notieren Sie sich den folgenden vorgenerierten Ereignishandler.
void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
}
Fügen Sie Code hinzu, um den Application_Error-Handler wie folgt zu implementieren.
void Application_Error(object sender, EventArgs e)
{
Exception myEx = Server.GetLastError();
String RedirectUrlString = "~/Error.aspx?InnerErr=" +
myEx.InnerException.Message.ToString() + "&Err=" + myEx.Message.ToString();
Response.Redirect(RedirectUrlString);
}
Fügen Sie dann der Lösung eine Seite mit dem Namen Error.aspx hinzu, und fügen Sie diesen Markupausschnitt hinzu.
<center>
<div class="ContentHead">ERROR</div><br /><br />
<asp:Label ID="Label_ErrorFrom" runat="server" Text="Label"></asp:Label><br /><br />
<asp:Label ID="Label_ErrorMessage" runat="server" Text="Label"></asp:Label><br /><br />
</center>
Extrahieren Sie nun im Page_Load-Ereignishandler die Fehlermeldungen aus dem Request-Objekt.
protected void Page_Load(object sender, EventArgs e)
{
Label_ErrorFrom.Text = Request["Err"].ToString();
Label_ErrorMessage.Text = Request["InnerErr"].ToString();
}
Fazit
Wir haben gesehen, dass ASP.NET WebForms es einfach macht, eine anspruchsvolle Website mit Datenbankzugriff, Mitgliedschaft, AJAX usw. zu erstellen. ziemlich schnell.
Hoffentlich hat Ihnen dieses Lernprogramm die Tools gegeben, die Sie benötigen, um mit dem Erstellen Ihrer eigenen ASP.NET WebForms-Anwendungen zu beginnen!