第 8 部:最終ページ、例外処理、まとめ

作成者: Joe Stagner

Tailspin Spyworks は、.NET プラットフォーム用の強力でスケーラブルなアプリケーションを作成することが非常にシンプルであることを示しています。 ASP.NET 4 の優れた新機能を使用して、ショッピング、チェックアウト、管理などのオンライン ストアを構築する方法を示します。

このチュートリアル シリーズでは、Tailspin Spyworks サンプル アプリケーションをビルドするために実行されるすべての手順について詳しく説明します。 パート 8 では、連絡先ページ、ページに関するページ、および例外処理が追加されます。 これはシリーズの結論です。

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

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

デザイナーを使用して、AjaxControlToolkit の ToolkitScriptManager と Editor コントロールを含めるために、次のフォームを作成します。 .

新しいフォームを示すスクリーンショット。

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

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>

[バージョン情報] ページ

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

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

最後に、アプリケーション全体で例外がスローされ、コールドが Web アプリケーションで未処理の例外を引き起こす予期しない状況もあります。

Web サイトの訪問者に未処理の例外を表示することは決して望んでいません。

ハンドルされない例外を示すスクリーンショット。

ひどいユーザー エクスペリエンスである以外に、ハンドルされない例外もセキュリティ上の問題になる可能性があります。

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

これを行うには、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 アプリケーションの構築を開始するために必要なツールが提供されていることを願っています。