ASP.NET MVC 4

ASP.NET MVC 4

Адам Фриман

Создание нового 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 вы узнаете гораздо больше о том, что может делать маршрутизация.

или RSS канал: Что новенького на smarly.net