第 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 应用程序中未经处理的异常。
我们绝不希望向网站访问者显示未经处理的异常。
除了是糟糕的用户体验,未经处理的异常也可能是一个安全问题。
为了解决此问题,我们将实现全局异常处理程序。
为此,请打开 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 等的复杂网站。 相当快。
希望本教程提供了开始构建自己的 ASP.NET WebForms 应用程序所需的工具!