Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab1

.pdf
Скачиваний:
6
Добавлен:
15.03.2015
Размер:
529.08 Кб
Скачать

Созданиенового MVC проекта.

Для создания нового MVC проекта в Visual Studio, выберите New Project из меню File. Если вы выберете Web Templates, то в списке доступных темплейтов появится ASP.NET MVC 3 Web Application.

Укажите имя нового проекта. Это может быть любая строка без пробелов и спецсимволов. На картинке это PartyInvites, вы можете указать здесь MyFirstMvcApplication, или более понятное название, к примеру, OnlineShopApplication.

Заметка!

Всегда давайте приложениям понятные названия. Чтобы спустя полгода вы по названию могли вспомнить, что это за приложение.

После нажатия на кнопку ОК, вы увидите другое диалоговое окно, которые предлагает вам выбрать из трех различных шаблонов MVC проекта.

Шаблон Empty создает проект с минимумом файлов и папок, необходимых для приложения MVC 3. Шаблон Internet Template создает приложение с готовым функционалом аутентификации, навигации и визуальным стилем. Шаблон Intranet Template идентичен Internet Template за исключением того, что он предназначен для использования внутри корпоративной сети, и использует специальную корпоративную инфраструктуру для аутентификации.

Выберите Empty шаблон, оставьте галочку HTML5 semantic пустой, и кликните на ОК. Создастся новый MVC 3 проект.

После того, как Visual Studio создало новый проект, вы увидите набор файлов и папок, отображенных в окне Solution Explorer. Это структура MVC проекта по умолчанию. Вы можете попробовать запустить приложение выбрав пункт Start Debugging и пункта меню Debug (Если вас спросят можно ли активировать Debug, нажмите ОК). Вы увидите следующий результат:

Так как приложение у нас пустое, то и отображаться нечему. Сервер выдает ошибку 404.

Когда вы закончите просмотр убедитесь, что debugging остановлен. В большинстве случаев, это происходит автоматически, после закрытия окна браузера. Если этого не произошло, выберите пункт Stop Debugging из меню Debug.

Добавлениепервого контроллера.

В архитектуре MVC, входящие сообщения обрабатываются контроллером. В ASP.NET MVC контроллер — это простой класс. Каждый public метод в контроллере называется action, означая, что вы можете вызвать его через адресную строку браузера. Конвенция MVC подразумевает, что все контроллеры находятся в папке Controllers, которую Visual Studio создает автоматически, при создании проекта.

Для того чтобы добавить новый контроллер, совершите щелчок правой кнопкой мыши на папке

Controllers в окне Solution Explorer, выберите Add, и затем Contoller.

Когда появится окно добавления контроллера, укажите ему имя HomeController.

Внимание!

По конвенции ASP.NET MVC имя контроллера должно заканчиваться на Controller.

Опция Scaffolding предлагает нам создать контроллер по заданному шаблону, с определенным набором action. Нам это пока не требуется, поэтому убедитесь, что выбран пункт Empty Controller. Нажмите на кнопку Add. Visual Studio создаст новый файл с названием HomeController в папке Controllers, и откроет его для редактирования. Вы можете увидеть, что класс называется HomeController и наследуется от Controller. Отредактируйте код так, чтобы он выглядел следующим образом.

Вы пока не создали ничего фантастического, но это неплохой путь к тому, чтобы начать работать с MVC. Мы создали action который называется Index, и он возвращает строку «Hello World».

Запустите проект выбором пункта Start Debugging в меню Debug. Браузер отобразит вам следующее:

ПониманиеПутей (Routes)

Приложение MVC использует специальную routing system, которая определяет, какой action какого контроллера надо запускать, если вызван тот или иной URL.

Когда Visual Studio создает новый MVC проект, она добавляет несколько стандартных путей. Вы можете запросить любой из нижеперечисленных путей, и все они приведут к Index action

контроллера HomeContoller:

/

/Home

/Home/Index

Таким образом, при всех этих запросах, нам будет возвращена строка «Hello, world». Все вышесказанное, является хорошим примером следования конвенциям MVC. В данном случае, конвенцией является то, что контроллер HomeController является стартовой точкой ASP.NET MVC приложения. Пока мы следуем конвенции, мы имеет встроенную поддержку URL.

Отрисовкастраниц.

Выводом нашего предыдущего примера была строка, а не HTML страница. Чтобы браузер получал в ответ HTML, необходимо создать View.

Для этого изменим Index action следующим образом:

Изменения выделены жирным. Когда мы возвращаем объект ViewResult от action, мы говорим MVC, что нам нужно отрисовать View. Мы создаем ViewResult вызовом метода View без параметров. Это говорит MVC, что нужно отрисовать View по умолчанию. Если мы запустим программу сейчас, то увидим следующее:

Это сообщение об ошибке более чем информативное. Оно не только показывает, что MVC не может найти View, но и сообщает где оно его ищет. Это еще один интересный пример конвенции MVC: View ассоциируется с action по имени. Наш action в контроллере называется Index, соответственно MVC и ищет View, который называется Index. Кликните правой кнопкой мыши по названию action в контроллере, и выберите Add View из появившегося меню. Это действие откроет диалоговое окно:

Уберите галочкуUse a layout master page. У нас пока нет шаблонной разметки. Нажмите на кнопку Add, и Visual Studio создаст новый файл, который будет называться Index.cshtml, и будет лежать в папке Views/Home. Если вы откроете этот файл, то увидите, что он в большей своей степени состоит из HTML-кода. Исключением является

Этот блок кода говорит о том, что наша страница не наследуется от какого-либо шаблона, и абсолютно независима. Сделайте изменения в странице следующим образом:

Нажмите на Start Debugging в пункте меню Debug, чтобы запустить приложение. Вы увидите следующее:

Когда мы первый раз создавали Index action, он возвращал строку. Это означало, что MVC не делает ничего, кроме как возвращает строку в браузер. Сейчас Index action возвращает обхект ViewResult, который говорит MVC, что нужно отобразить View, и вернуть HTML содержащийся в нем. Мы не говорили MVC какой именно View нужно использовать. Он нашел его автоматически по имени. Таким образом, по конвенции MVC, название файла View идентично названию action, а название папки, в которой лежит View — идентично названию контроллера,

без слова Controller (View для HomeContoller/Index – будет лежать в Views/Home/Index.cshtml).

Помимо ViewResult, action может возвращать и другие объекты. К примеру, RedirectResult, который скажет браузеру, что необхожимо перейти на другую страницу. Если вы измените код контроллера на следующий:

Соседние файлы в предмете Программирование