Использование приложения MVC3 для вызова других приложений MVC - PullRequest
1 голос
/ 31 марта 2012

На самом деле у меня есть несколько приложений MVC3, и я хочу вызвать эти приложения из основного приложения MVC3. Например, вызов действия в определенном контроллере из базового приложения MVC3.

Есть ли идея сделать это?

Ответы [ 2 ]

2 голосов
/ 31 марта 2012

Вы можете использовать области для структурирования большого сайта меньшими кусками.

От MSDN:

Шаблон MVC разделяет логику модели (данных) приложения из его логики представления и бизнес-логики. В ASP.NET MVC это логическое разделение также реализовано физически в проекте структура, в которой контроллеры и представления хранятся в папках, которые используют соглашения об именах для определения отношений. Эта структура поддерживает потребности большинства веб-приложений.

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

Для размещения больших проектов ASP.NET MVC позволяет разбивать веб-страницы. приложения в меньшие единицы, которые называются областями. районы обеспечить способ разделить большое веб-приложение MVC на более мелкие функциональные группировки. Область фактически является структурой MVC внутри приложение. Приложение может содержать несколько структур MVC (область).

Например, одно большое приложение электронной коммерции может быть разделено в области, которые представляют витрину, отзывы о продукте, пользователь Администрирование аккаунта и система закупок. Каждая область представляет отдельную функцию всего приложения.

Источник: http://msdn.microsoft.com/en-us/library/ee671793.aspx

В Visual Studio просто щелкните правой кнопкой мыши в своем проекте и скажите «Добавить область», чтобы добавить новую область.

Если вам нужно сослаться на другую область из вашего View, вы просто добавляете параметр "area" в коллекцию значений маршрута:

@Html.ActionLink("[LinkText]", "[ActionName]", "[ControllerName]", new { area = "[AreaName]" }, null);
1 голос
/ 31 марта 2012

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

Еще одна идея, если вы находитесь на ранней стадии разработки, подумайте о просмотре WebAPI MVC4.Если вы сможете преобразовать контроллеры под-приложения в ApiControllers, то у вас будет запуск сервисного уровня, который может вызвать основное приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...