次の方法で共有


パート 8: 最終ページ、例外処理、まとめ

作成者: Joe Stagner

Tailspin Spyworks は、.NET プラットフォーム用の高性能でスケーラブルなアプリケーションを簡単に作成できる方法を実証します。 ASP.NET 4 の優れた新機能を使用して、ショッピング、チェックアウト、管理などのオンライン ストアを構築する方法を示します。

このチュートリアル シリーズでは、Tailspin Spyworks サンプル アプリケーションを作成するために必要なすべての手順について詳しく説明します。 パート 8 では、連絡先ページ、ソフトウェア情報ページ、例外処理が追加されます。 これがこのシリーズのまとめです。

連絡先ページ (ASP.NET からメールを送信する)

ContactUs.aspx という名前の新しいページを作成する

デザイナーを使用して、次のフォームを作成します。このときに、AjaxControlToolkit の ToolkitScriptManager と Editor コントロールを含めることに特に注目してください。

Screenshot that shows the new form.

[送信] ボタンをダブルクリックして、分離コード ファイルにクリック イベント ハンドラーを生成し、連絡先情報を電子メールとして送信する方法を実装します。

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

このコードでは、web.config ファイルの構成セクションに、メールの送信に使用する SMTP サーバーを指定するエントリが含まれている必要があります。

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

About ページ

AboutUs.aspx という名前のページを作成し、任意のコンテンツを追加します。

グローバル例外ハンドラー

最後に、アプリケーション全体で例外をスローしました。予期しない状況が発生することはあるもので、この Web アプリケーションでも、ハンドルされない例外が発生する可能性はあります。

ハンドルされない例外が、Web サイトの訪問者に表示されることがあってはなりません。

Screenshot that shows an unhandled exception.

ハンドルされない例外は、ユーザーにとって悪い経験であるだけでなく、セキュリティ上問題である可能性もあります。

この問題を解決するために、グローバル例外ハンドラーを実装します。

これを行うには、Global.asax ファイルを開き、次の事前に生成されたイベント ハンドラーに注目します。

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

次のように、Application_Error ハンドラーを実装するコードを追加します。

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

次に、Error.aspx という名前のページをソリューションに追加し、このマークアップ スニペットを追加します。

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

Page_Load イベント ハンドラーで、要求オブジェクトからエラー メッセージを抽出します。

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

まとめ

ASP.NET WebForms を使用すると、データベース アクセス、メンバーシップ、AJAX などの洗練された Web サイトを簡単に作成できることを確認しました。 非常に迅速に。

このチュートリアルで、独自の ASP.NET WebForms アプリケーションの構築を開始するために必要なツールについてのご理解にお役に立てていれば幸いです。