Partager via


Partie 8 : Pages finales, gestion des exceptions et conclusion

par Joe Stagner

Tailspin Spyworks montre à quel point il est extrêmement simple de créer des applications puissantes et évolutives pour la plateforme .NET. Il montre comment utiliser les nouvelles fonctionnalités de ASP.NET 4 pour créer un magasin en ligne, y compris les achats, la caisse et l’administration.

Cette série de tutoriels détaille toutes les étapes effectuées pour générer l’exemple d’application Tailspin Spyworks. La partie 8 ajoute une page de contact, une page à propos de la page et une gestion des exceptions. C’est la conclusion de la série.

Page contact (envoi d’e-mails à partir de ASP.NET)

Créer une page nommée ContactUs.aspx

À l’aide du concepteur, créez le formulaire suivant en prenant une note spéciale pour inclure le ToolkitScriptManager et le contrôle Editor à partir d’AjaxControlToolkit. .

Capture d’écran montrant le nouveau formulaire.

Double-cliquez sur le bouton « Envoyer » pour générer un gestionnaire d’événements click dans le fichier code-behind et implémenter une méthode pour envoyer les informations de contact sous forme d’e-mail.

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);
   }
}

Ce code nécessite que votre fichier web.config contienne une entrée dans la section de configuration qui spécifie le serveur SMTP à utiliser pour l’envoi de messages.

<system.net>
        <mailSettings>
            <smtp>
                <network
                     host="mail..com"
                     port="25"
                     userName=""
                     password="" />
            </smtp>
        </mailSettings>
    </system.net>

Page À propos de

Créez une page nommée AboutUs.aspx et ajoutez le contenu de votre choix.

Gestionnaire d’exceptions globales

Enfin, tout au long de l’application, nous avons levée des exceptions et il existe des circonstances imprévues qui provoquent également des exceptions non prises en charge dans notre application web.

Nous ne voulons jamais qu’une exception non gérée soit affichée à un visiteur de site web.

Capture d’écran montrant une exception non prise en charge.

En plus d’être une expérience utilisateur terrible, les exceptions non prises en charge peuvent également être un problème de sécurité.

Pour résoudre ce problème, nous allons implémenter un gestionnaire d’exceptions global.

Pour ce faire, ouvrez le fichier Global.asax et notez le gestionnaire d’événements prégénéré suivant.

void Application_Error(object sender, EventArgs e)
 {
 // Code that runs when an unhandled error occurs
 }

Ajoutez du code pour implémenter le gestionnaire Application_Error comme suit.

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);
 }

Ajoutez ensuite une page nommée Error.aspx à la solution et ajoutez cet extrait de code de balisage.

<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>

Maintenant, dans le gestionnaire d’événements Page_Load extrayez les messages d’erreur de l’objet Request.

protected void Page_Load(object sender, EventArgs e)
{
    Label_ErrorFrom.Text = Request["Err"].ToString();
    Label_ErrorMessage.Text = Request["InnerErr"].ToString();
}

Conclusion

Nous avons vu que ASP.NET WebForms facilite la création d’un site web sophistiqué avec accès à la base de données, appartenance, AJAX, etc. assez rapidement.

Espérons que ce tutoriel vous a donné les outils dont vous avez besoin pour commencer à créer vos propres ASP.NET applications WebForms !