Методические указания к ДЗ №2, страница 4
Описание файла
PDF-файл из архива "Методические указания к ДЗ №2", который расположен в категории "". Всё это находится в предмете "разработка интернет-приложений" из 5 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "разработка интернет-приложений" в общих файлах.
Просмотр PDF-файла онлайн
Текст 4 страницы из PDF
85Отредактируем привязку к данным:ОглавлениеГапанюк Ю.Е. «Интернет-технологии»65Рис. 86Рис. 87После добавления календаря поле ввода для даты необходимо удалить.Для того, чтобы процессор выбирался из выпадающего списка, необходимодобавить выпадающий список и установить привязку к данным:ОглавлениеГапанюк Ю.Е. «Интернет-технологии»66Рис. 88Далее необходимо сделать привязку к отображаемым элементам:Рис. 89ОглавлениеГапанюк Ю.Е.
«Интернет-технологии»67Рис. 90Далее необходимо сделать привязку к элементу, в котором будетотображаться значение:Рис. 91ОглавлениеГапанюк Ю.Е. «Интернет-технологии»68Рис. 92После добавления выпадающего списка поле ввода должно быть удалено.Для того, чтобы управляющие гиперссылки (для добавления, удаления ит.д.) преобразовать в кнопки, необходимо элементы «asp:LinkButton» заменить наэлементы «asp:Button».Внесем исправления в остальные шаблоны.В случае добавления новой записи используется «InsertItemTemplate».
Вэтот шаблон можно скопировать все необходимые элементы из шаблонаредактирования «EditItemTemplate» (за исключением управляющих кнопок,которые специфичны для каждого шаблона).В шаблоне «ItemTemplate», который используется для отображения записи,дата выводится в формате «дата и время».
Для того, чтобы выводилась толькодата,необходимовыражение«Bind("lastupgrade")»заменитьна«Bind("lastupgrade", "{0:dd.MM.yyyy}")».Для того, чтобы выводился не код процессора, а его название, можноперенести выпадающий список из шаблона редактирования и сделать егонередактируемым (Enabled="False").ОглавлениеГапанюк Ю.Е. «Интернет-технологии»69В шаблон для отсутствия данных «EmptyDataTemplate» можно перенестикнопку добавления новой записи из шаблона «ItemTemplate».
Тэг<EmptyDataTemplate><asp:Button . . . ></EmptyDataTemplate>необходимо добавить вручную в содержимое тэга «asp:FormView».Далее можно запустить проект и проверить работу форм.3.3Создание веб-приложения с использованием фреймворкаASP.NET MVC3.3.1 Создание нового проектаРис. 93ОглавлениеГапанюк Ю.Е. «Интернет-технологии»70Рис.
94В нашем примере используется ASP.NET MVC версии 3. Но мы будемиспользовать только базовые возможности фреймворка, поэтому пример можетбыть адаптирован для предыдущих версий ASP.NET MVC.Шаблон «Internet Application» создает базовый проект, в который мы будемвносить изменения.View Engine – это так называемый «шаблонный фреймворк», языкшаблонов, который используется для создания «видов» приложения. В нашемпримере используется классический язык шаблонов «ASPX». В версии ASP.NETMVC версии 3 также появился новый язык шаблонов «Razor».Флажок «Create unit test project» позволяет создать дополнительный проектдляавтоматизированногоавтоматизированноготестированиятестированияявляетсяприложения.Возможностьхарактернойособенностьюбольшинства MVC веб-фреймворков.
В нашем примере эта возможность неиспользуется.Разработка приложения включает создание модели, контроллера и видов.ОглавлениеГапанюк Ю.Е. «Интернет-технологии»713.3.2 Редактирование основного видаПри запуске приложения открывается следующая форма:Рис. 95Для того, чтобы изменить форму по умолчанию, необходимо внестиследующие изменения.В файле «Views/Shared/Site.master» фрагмент<div id="title"><h1>My MVC Application</h1></div>заменить на фрагмент<div id="title"><h1>Компьютеры и процессоры</h1></div>а фрагмент<div id="menucontainer"><ul id="menu"><li><%: Html.ActionLink("Home", "Index", "Home")%></li><li><%: Html.ActionLink("About", "About", "Home")%></li></ul>ОглавлениеГапанюк Ю.Е.
«Интернет-технологии»72</div>заменить на фрагмент<div id="menucontainer"><ul id="menu"><li><%: Html.ActionLink("Процессоры", "Index", "Processor")%></li><li><%: Html.ActionLink("Компьютеры", "Index", "Computer")%></li></ul></div>МетодHtml.ActionLink("текст гиперссылки", "название метода", "название контроллера")генерирует гиперссылку, которая вызывает требуемый метод требуемогоконтроллера.Теперь при запуске приложения форма выглядит следующим образом:Рис. 96Гиперссылка «Log On» может быть отредактирована или удалена в файле«Views/Shared/Site.master», мы оставим ее как возможный пример авторизациипользователя в нашем приложении.ОглавлениеГапанюк Ю.Е.
«Интернет-технологии»73По умолчанию в сгенерированном шаблоне приложения вызывается метод«Index» контроллера «Home». Вызываемый по умолчанию метод контроллераможно поменять в файле «Global.asax».В файле «Views/Home/Index.aspx» удалим фрагмент<h2><%: ViewBag.Message %></h2><p>To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc"title="ASP.NET MVC Website">http://asp.net/mvc</a>.</p>Теперь при запуске приложения форма выглядит следующим образом:Рис. 973.3.3 Создание моделиСгенерируем модель нашего приложения с использованием «EntityFramework».Для этого необходимо выбрать в проекте каталог «Models», выбратьдобавление нового элемента, в категории «Data» выбрать «ADO.NET Entity DataModel».ОглавлениеГапанюк Ю.Е. «Интернет-технологии»74Рис. 98Рис.
99Далее необходимо выбрать генерацию модели из БД.ОглавлениеГапанюк Ю.Е. «Интернет-технологии»75Рис. 100Нажать на кнопку «New Connection» для подключения к серверу.ОглавлениеГапанюк Ю.Е. «Интернет-технологии»76Рис. 101Осуществить соединение с БД «aspdb».ОглавлениеГапанюк Ю.Е.
«Интернет-технологии»77Рис. 102Выбрать таблицы для генерации модели.ОглавлениеГапанюк Ю.Е. «Интернет-технологии»78Рис. 103Мастер сгенерирует файл «Model1.edmx», содержащий следующую модель.ОглавлениеГапанюк Ю.Е. «Интернет-технологии»79Рис. 104Особенностью «Entity Framework» является то, что сгенерированная модельявляется классами C#, которые не привязаны напрямую к полям таблиц БД.Для установления соответствия между моделью и полями таблиц БДиспользуется промежуточный слой, который называется мэппингом (mapping).В случае изменения структуры БД изменяется не модель данных, а толькомэппинги, связь модели данных с БД. Это позволяет менять структуру БД имодель данных приложения независимо друг от друга.3.3.4 Работа с таблицей «Processor»3.3.4.1Создание контроллера для таблицы «Processor»Для создания контроллера необходимо выбрать в проекте каталог«Controllers», и выбрать добавление нового контроллера.ОглавлениеГапанюк Ю.Е.
«Интернет-технологии»80Рис. 105Далее указать название контроллера «ProcessorController» и включитьфлажок для автоматического создания методов.Рис. 106Будет сгенерирован класс «ProcessorController».Перед каждым методом класса в комментарии указан способ его вызовачерез HTTP – GET или POST. Если метод вызывается через POST, то для методаиспользуется атрибут [HttpPost].ОглавлениеГапанюк Ю.Е.
«Интернет-технологии»81С использованием GET вызываются методы, которые отображают какуюлибо форму, с использованием POST вызываются методы, которые выполняютдействие с БД. Например, метод Edit (GET) используется для отображения формыредактирования, если в этой форме пользователь нажимает кнопку сохранения, товызывается метод Edit (POST), который сохраняет изменения в БД.Далее для правильной генерации видов нужно собрать проект, пунктменю Build / Build.3.3.4.2Создание формы списка данных для таблицы «Processor»Сгенерируем формы (виды) на основе методов контроллера.Нажмем правую кнопку на названии метода «Index()», выберем пункт меню«Add View».
Заполним поля в соответствии со следующей формой.Рис. 107View name – название сценария ASPX.ОглавлениеГапанюк Ю.Е. «Интернет-технологии»82View engine – ASPX или Razor, в нашем примере используется ASPX.Флаг «Create a strongly-typed view» позволяет генерировать вид на основеодного из классов модели (здесь используется класс процессора).Scaffold template позволяет выбирать один из стандартных видовгенерируемых форм: Create – добавление новой записи. Delete – удаление записи. Details – данные записи (без редактирования). Edit – редактирование записи. Empty – пустой шаблон. List – список записей.Флаг «Use a layout or master page» позволяет использовать технологиюмастер-страниц(поумолчаниюиспользуетсяосновнаямастер-страницаприложения).
Поле «ContentPlaceHolder ID» позволяет задавать плэйсхолдер намастер-странице, в котором будет отображаться генерируемая форма.После нажатия кнопки «Add» в каталоге проекта «Views» будет созданподкаталог «Processor» (этот подкаталог соответствует классу модели), а в немфайл «Index.aspx», содержащий вид для отображения списка процессоров. Пригенерации других видов в этот каталог будут добавляться файлы ASPX,содержащие виды.Для того, чтобы вид работал правильно метод контроллера Index() долженвозвращать список процессоров.В тексте класса контроллера заменим фрагмент:namespace MvcApplication.Controllers{public class ProcessorController : Controller{//// GET: /Processor/public ActionResult Index(){return View();}ОглавлениеГапанюк Ю.Е.