Стилизация представления Thanks 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Стилизация представления Thanks



Последним представлением, подлежащим стилизации, является Thanks.cshtml, в примере ниже показано, как это делается. Вы заметите, что добавленная разметка похожа на таковую из представления Index.cshtml. Чтобы упростить управление приложением, имеет смысл избегать дублирования кода и разметки везде, где это возможно. Позже будут рассмотрены компоновки Razor и описаны частичные представления, которые способствуют сокращению дублирования разметки.

HTML

@model PartyInvites.Models.GuestResponse

 

@{

Layout = null;

}

 

<!DOCTYPE html>

<html>

<head>

<meta name="viewport" content="/>

<title>Thanks</title>

<link href="~/Content/bootstrap.css" rel="stylesheet" />

<link href="~/Content/bootstrap-theme.css" rel="stylesheet" />

<style>

   body { background: #f1f1f1; }

</style>

</head>

<body>

<div class="text-center">

   <h1>Спасибо, @Model.Name!</h1>

   <div class="lead">

       @if (Model.WillAttend == true)

       {

           @:Здорово что вы придете, напитки уже в холодильнике;)

       }

       else

       {

           @:Жаль что вы не придете, но спасибо что дали об этом знать.

       }

   </div>

</div>

</body>

</html>

 

Класс lead применяет один из типографских стилей Bootstrap. Результаты можно видеть на рисунке ниже:

Завершение

Последнее требование для примера приложения заключается в отправке завершенных ответов RSVP по электронной почте организатору вечеринки. Это можно было бы сделать за счет добавления метода действия для создания и отправки сообщения с использованием классов, работающих с электронной почтой, которые доступны в.NET Framework - такой подход лучше всего согласуется с шаблоном MVC.

Однако вместо этого мы намерены воспользоваться вспомогательным классом WebMail. Он не является частью инфраструктуры MVC, но позволяет завершить пример, не вникая в нюансы настройки средств для отправки электронной почты. Нам требуется, чтобы электронное письмо отправлялось при визуализации представления Thanks. Необходимые изменения показаны в примере ниже:

HTML

@model PartyInvites.Models.GuestResponse

 

@{

Layout = null;

}

 

<!DOCTYPE html>

<html>

<head>

<meta name="viewport" content="/>

<title>Thanks</title>

<link href="~/Content/bootstrap.css" rel="stylesheet" />

<link href="~/Content/bootstrap-theme.css" rel="stylesheet" />

<style>

   body { background: #f1f1f1; }

</style>

</head>

<body>

@{

   try

   {

       WebMail.SmtpServer = "smtp.example.com";

       WebMail.SmtpPort = 587;

       WebMail.EnableSsl = true;

       WebMail.UserName = "mySmtpUsername";

       WebMail.Password = "mySmtpPassword";

       WebMail.From = "myemai@example.com";

 

       WebMail.Send("myemail@example.com", "RSVP Приглашение",

              Model.Name + ((Model.WillAttend?? false)? " ": "не") + "придет");

 

   }

   catch (Exception)

   {

       @:<b>К сожалению при отправке письма возникла ошибка.</b>

   }

}

<div class="text-center">

   <h1>Спасибо, @Model.Name!</h1>

   <div class="lead">

       @if (Model.WillAttend == true)

       {

           @:Здорово что вы придете, напитки уже в холодильнике;)

       }

       else

       {

           @:Жаль что вы не придете, но спасибо что дали об этом знать.

       }

   </div>

</div>

</body>

</html>

 

Вспомогательный класс WebMail использовался потому, что он позволяет продемонстрировать отправку электронного письма с минимальными усилиями. Тем не менее, обычно подобную функциональность предпочтительнее помещать в метод действия.

Мы добавили выражение Razor, которое применяет вспомогательный класс WebMail для настройки параметров нашего почтового сервера, в том числе имени сервера, обязательности использования безопасных подключений (SSL) и сведений об учетной записи. Как только все эти детали сконфигурированы, с помощью метода WebMail.Send() отправляется сообщение по электронной почте.

Весь код отправки сообщения помещен внутрь блока try...catch, что позволяет предупредить пользователя, если сообщение не отправлено. Это осуществляется путем добавления текстового блока в вывод представления Thanks. Более рациональным подходом было бы отображение отдельного представления ошибки в случае невозможности отправки электронного сообщения, но мы хотели максимально упростить это первое приложение MVC.

Показать выполненное задание преподавателю.

 



Поделиться:


Последнее изменение этой страницы: 2020-11-28; просмотров: 69; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.121.131 (0.009 с.)