Веб-формы ASP.NET и ASP.NET MVC в ладу друг с другом - Обзор решения
ОГЛАВЛЕНИЕ
Обзор решения
Каркас ASP.NET MVC имеет высокую степень поддержки для подключаемости и расширяемости. Ключом каркаса ASP.NET MVC являются следующие три сборки, показанные на рисунке, расширяющие System.Web:
Кроме того, эти сборки работают в средах сервера со средним доверием и развертываются в папке bin. А значит, сборки не надо устанавливать в GAC (глобальный кэш сборок). Просто добавляется ссылка на сборки, и готово.
4-шаговый процесс
Внедрение MVC в существующие приложения веб-форм является 4-шаговым процессом, как показано на схеме ниже:
Шаг 1 – Привязка требуемых библиотек
Первый шаг – найти библиотеки, необходимые для работы ASP.NET MVC.
• Сборка System.Web.Mvc.dll хранится в: [Каталог установки]\Microsoft.NET\ASP.NET MVC\Assemblies. Замечание: [Каталог установки] в данном случае равен c:\[windows].
• Сборки System.Web.Abstractions.dll и System.Web.Routing.dll хранятся в [Каталог установки]\Reference Assemblies(привязываемые сборки)\Microsoft\Framework\v3.5. Замечание: [Каталог установки] в данном случае обычно равен [%Program Files%].
Пример в данной статье хранит эти файлы в каталоге "Reference_Assembly". После добавления надо сослаться на три основные сборки в приложении с помощью диалогового окна Проект/Добавить ссылку.
Смотрите рисунок ниже:
Замечание: Классические веб-формы расположены в папке "ClassicWebForms", а представления ASP.NET MVC расположены в папке "Views".
Шаг 2 – Создание необходимых каталогов
Как сказано ранее, ASP.NET MVC соблюдает определенные соглашения (поступает предписанным образом). Одно из основных соглашений ASP.NET MVC – именование каталогов, где хранятся контроллеры и представления проекта.
В данном примере каталоги "Controllers(контроллеры)" и "Views(представления)" используются для хранения соответствующих контроллеров и представлений.
Создается HomeController.cs и помещается в каталог Controller в App_Code. в крупных решениях контроллер может принадлежать своей собственной соответствующей сборке. Файл представления HomeController Index.aspx расположен в папке Views/Home.
Шаг 3 - Обновление Web.config
Третий шаг – обновить файл web.config. Смотрите следующую схему, чтобы добавить требуемые сборки:
Первые три сборки - сборки ASP.NET MVC.
Далее добавляется ссылка на пространство имен в раздел system.web/pages. Это обеспечивает доступ к помощникам System.Web.Mvc, System.Linq и обобщениям System.Collections из страницы представления.
Здесь требуются только пространства имен System.Web.Mvc, System.Web.Mvc.Html и System.Web.Mvc.Ajax.
Но остальные пространства имен полезны для работы с LINQ или обобщениями.
Наконец, надо зарегистрировать UrlRoutingModule. Этот модуль отвечает за сопоставление запрашиваемого URL с нужным маршрутом (контроллер/действие).
Шаг 4 – Регистрация маршрутов
Надо назначить маршруты в событии Application_Start из Global.asax.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // имя маршрута
"{home}/{action}/{id}", // URL с параметрами
new { controller = "Home", action = "Index",
id = "" } // значения параметра по умолчанию
);
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}