Веб-формы 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);
}