Создание нового ASP.NET MVC проекта
Мы начнем с создания нового MVC проекта в Visual Studio. Выберите New Project
из меню File
, чтобы открыть диалоговое окно New Project
. Если вы выберите в разделе Visual C# шаблоны Web
, вы увидите, что одним из доступных типов проекта является ASP.NET MVC 4 Web Application
. Выберите этот тип проекта, как показано на рисунке 2-1.
Рисунок 2-1: Шаблон Visual Studio MVC 4 проекта

Внимание
Visual Studio 2012 включает в себя поддержку MVC 3, также как и MVC 4, и вы видите, что старые шаблоны доступны вместе с новыми. При создании нового проекта обратите на это внимание и выберите правильный
Назовите новый проект PartyInvites
и нажмите кнопку ОК
, чтобы продолжить. Вы увидите другое диалоговое окно, показанное на рисунке 2-2, где вас попросят выбрать между тремя различными типами шаблонов MVC проекта.
Рисунок 2-2: Выбор типа MVC 4 проекта

Разные шаблоны MVC проектов создают проекты с разной базовой поддержкой таких функций, как аутентификация, навигация и стили. Мы не будем все усложнять в этой главе. Выберите вариант Empty
, который создает проект с базовой структурой папок, но без файлов, необходимых для создания MVC приложений. Мы будем добавлять файлы, которые нам понадобятся, по мере прочтения главы, и каждый раз будем пояснять, что мы делаем.
Нажмите кнопку OK
, чтобы создать новый проект.
Примечание
На рисунке 2-2 вы можете увидеть выпадающее меню, которое позволяет вам указать вид движка представления. В MVC 3 Microsoft представила новый и улучшенный вид движка, который называется Razor, и мы будем использовать Razor в этой книге. Мы рекомендуем вам сделать то же самое. Но если вы хотите использовать стандартный вид ASP.NET движка (известный как ASPX) – это ваш выбор. Мы расскажем все о Razor и о том, что делает движок представления, в главах 5 и 18.
Когда Visual Studio создаст проект, вы увидите файлы и папки, отображаемые в окне Solution Explorer
. Это стандартная структура MVC 4 проекта. Вы можете попробовать запустить приложение, выбрав Start Debugging
из меню Debug
(если он попросит вас включить отладку, просто нажмите кнопку ОК
). Результат показан на рисунке 2-3. Поскольку мы начали с пустого шаблона проекта, приложение ничего не содержит, так что мы получаем ошибку 404 Not Found
.
Рисунок 2-3: Попытка запустить пустой проект

Когда вы закончите, не забудьте остановить отладку, закрыв окно браузера, который показывает ошибку, или вернитесь к Visual Studio и выберите Stop Debugging
в меню Debug
.
Visual Studio открывает браузер для отображения проекта, и вы можете изменить браузер, который используется, в меню, показанном на рисунке 2-4. Вы видите, что тут представлены Microsoft Internet Explorer и Google Chrome.
Рисунок 2-4: Смена браузера, который Visual Studio использует для запуска проекта

В этой книге мы будем использовать Internet Explorer 10. Все современные веб браузеры довольно хорошо на сегодняшний день, но мы будем работать с IE, потому что он установлен у многих людей.
Добавление первого контроллера
В архитектуре MVC входящие запросы обрабатываются контроллерами. В ASP.NET MVC контроллеры являются простыми C# классами (как правило, наследуются от System.Web.Mvc.Controller
, встроенных во фреймворк базовых классов контроллеров). Каждый открытый метод в контроллере известен как метод действия, то есть вы можете вызвать его из Интернет через некоторые URL, чтобы выполнить действие. В MVC контроллеры находятся в папке под названием Controllers
, которую Visual Studio создала для нас при создании проекта. Вам не нужно следить за этим и большинством других соглашений MVC, но мы рекомендуем вам сделать не в последнюю очередь потому, что это поможет вам разобраться в примерах, приведенных в данной книге.
Чтобы добавить контроллер в наш проект, просто щелкните правой кнопкой мыши по папке Controllers
в окне Solution Explorer Visual Studio
и затем выберите Add
во всплывающем меню, как показано на рисунке 2-5.
Рисунок 2-5: Добавление контроллера в MVC проект

Когда появится диалоговое окно Add Controller
, назовите контроллер HomeController
, как показано на рисунке 2-6. Это еще одно соглашение: имена, которые мы даем контроллерам, должны быть описательными и заканчиваться Controller
.
Рисунок 2-6: Называем контроллер

Раздел диалогового окна Scaffolding options
позволяет нам создать контроллер с помощью шаблона с общими функциями. Мы не собираемся использовать эту возможность, поэтому убедитесь, что в меню Template
выбрано Empty MVC controller
, как показано на рисунке.
Нажмите кнопку Add
, чтобы создать контроллер. Visual Studio создаст новый файл с C# кодом с названием HomeController.cs
в папке Controllers
и откроет его для редактирования. Мы показали контент по умолчанию, который Visual Studio помещает в классовый файл, в листинге 2-1. Вы видите, что класс называется HomeController
, и он является производным от System.Web.Mvc.Controller
.
Листинг 2-1: Содержание по умолчанию класса HomeController
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace PartyInvites.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
Хороший способ начать работу с MVC – это сделать несколько простых изменений в классе контроллера. Измените код в файле HomeController.cs
так, чтобы он соответствовал коду листинга 2-2. Мы выделили изменения, чтобы их было легче увидеть.
Листинг 2-2: Изменение класса HomeController
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace PartyInvites.Controllers
{
public class HomeController : Controller
{
public string Index()
{
return "Hello World";
}
}
}
Мы не создали ничего захватывающего, но это хороший пример. Мы изменили метод действия (action method) Index
таким образом, что он возвращает строку "Hello, world
". Запустите проект еще раз, выбрав Start Debugging
в Visual Studio меню Debug
. Браузер отобразит результат метода действия Index
, как показано на рисунке 2-7.
Рисунок 2-7: Результат, возвращенный методом контроллера

Роуты
Также как и модели, представления и контроллеры, MVC приложения используют систему маршрутизации (роутинговую систему) ASP.NET, которая решает, как URL-адреса картируют конкретные контроллеры и действия. Когда Visual Studio создает MVC проект, она в начале добавляет некоторые роуты по умолчанию. Вы можете запросить любую из следующих ссылок, и они будут направлены на HomeController
метод Index
:
/
/Home
/Home/Index
Поэтому когда браузер запрашивает http://yoursite/
или http://yoursite/Home
, он получает выходные данные HomeController
метода Index
. Вы можете попробовать сделать это самостоятельно, изменив URL в браузере. На данный момент, это будет http://localhost:61982/
, за исключением того, что порт может быть другим. Если добавить в URL /Home
или /Home/Index
и обновить страницу, вы увидите тот же Hello World
MVC приложения.
Это хороший пример пользы от MVC соглашений. В данном случае соглашение заключается в том, что у нас есть контроллер HomeController
и что он будет отправной точкой для нашего MVC приложения. Роуты по умолчанию, которые Visual Studio создает для нового проекта, предполагают, что мы будем следовать этому соглашению. И так как мы следовали соглашению, мы получили поддержку для URL адресов из предыдущего списка.
Если бы мы не следовали соглашению, мы должны были бы изменить роуты до точки к тому контроллеру, который мы создали вместо этого. Для этого простого примера конфигурация по умолчанию это как раз то, что нам нужно.
Совет
Вы можете просмотреть и отредактировать роутинговые настройки, открыв файл
Global.asax.cs
. В главе 7 вы будете создавать пользовательские записи маршрутизации, а в главах 13 и 14 вы узнаете гораздо больше о том, что может делать маршрутизация.