Część 8. Końcowe strony, obsługa wyjątków i podsumowanie
Autor: Joe Stagner
Tailspin Spyworks pokazuje, jak niezwykle proste jest tworzenie zaawansowanych, skalowalnych aplikacji dla platformy .NET. Pokazuje, jak używać wspaniałych nowych funkcji w ASP.NET 4 do tworzenia sklepu internetowego, w tym zakupów, wyewidencjonowania i administracji.
W tej serii samouczków szczegółowo opisano wszystkie kroki podjęte w celu utworzenia przykładowej aplikacji Tailspin Spyworks. Część 8 dodaje stronę kontaktu, informacje o stronie i obsłudze wyjątków. Jest to zakończenie serii.
Strona kontaktowa (wysyłanie wiadomości e-mail z ASP.NET)
Tworzenie nowej strony o nazwie ContactUs.aspx
Za pomocą projektanta utwórz następujący formularz, który zanotuj, aby uwzględnić kontrolkę ToolkitScriptManager i Edytor z zestawu AjaxControlToolkit. .
Kliknij dwukrotnie przycisk "Prześlij", aby wygenerować procedurę obsługi zdarzeń kliknięcia w kodzie za plikiem i zaimplementuj metodę wysyłania informacji kontaktowych jako wiadomości 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);
}
}
Ten kod wymaga, aby plik web.config zawierał wpis w sekcji konfiguracji, który określa serwer SMTP do użycia do wysyłania poczty.
<system.net>
<mailSettings>
<smtp>
<network
host="mail..com"
port="25"
userName=""
password="" />
</smtp>
</mailSettings>
</system.net>
Informacje o stronie
Utwórz stronę o nazwie AboutUs.aspx i dodaj dowolną zawartość.
Globalna procedura obsługi wyjątków
Na koniec w całej aplikacji zgłaszaliśmy wyjątki i istnieją nieprzewidziane okoliczności, które zimno również powodują nieobsługiwane wyjątki w naszej aplikacji internetowej.
Nigdy nie chcemy, aby nieobsługiwany wyjątek był wyświetlany dla odwiedzających witrynę internetową.
Oprócz bycia strasznym środowiskiem użytkownika nieobsługiwanych wyjątków może być również problem z zabezpieczeniami.
Aby rozwiązać ten problem, wdrożymy globalną procedurę obsługi wyjątków.
W tym celu otwórz plik Global.asax i zanotuj następującą wstępnie wygenerowaną procedurę obsługi zdarzeń.
void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
}
Dodaj kod, aby zaimplementować procedurę obsługi Application_Error w następujący sposób.
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);
}
Następnie dodaj stronę o nazwie Error.aspx do rozwiązania i dodaj ten fragment kodu znaczników.
<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>
Teraz w programie obsługi zdarzeń Page_Load wyodrębnij komunikaty o błędach z obiektu żądania.
protected void Page_Load(object sender, EventArgs e)
{
Label_ErrorFrom.Text = Request["Err"].ToString();
Label_ErrorMessage.Text = Request["InnerErr"].ToString();
}
Podsumowanie
Widzieliśmy, że ASP.NET WebForms ułatwia tworzenie wyrafinowanej witryny internetowej z dostępem do bazy danych, członkostwem, AJAX itp. dość szybko.
Miejmy nadzieję, że ten samouczek dał Ci narzędzia potrzebne do rozpoczęcia tworzenia własnych aplikacji ASP.NET WebForms!