2012-03-31 1 views
1

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

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

+4

Вы посмотрели на один большой сайт и разделили его на области? – aKzenT

+0

@aKzenT: Не могли бы вы описать его больше? Я думаю, что это то, что я хочу ... –

+0

Что значит, вызывая действие? Опишите, что вы хотите архивировать; –

ответ

2

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

Из MSDN:

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

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

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

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

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

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

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

@Html.ActionLink("[LinkText]", "[ActionName]", "[ControllerName]", new { area = "[AreaName]" }, null); 
1

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

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

+0

Правильно, я могу создать их из других классов, но я хочу сделать это лучше. Например, используя файл маршрута для каждого вспомогательного приложения ... –

+1

Возможно, вы можете заставить это работать, но не будет ли устанавливать жесткую зависимость между приложениями mvc? Возможно, вы могли бы абстрагировать контроллеры суб-приложений с помощью интерфейса, а затем разрешить их с помощью контейнера Ioc. – vansimke

Смежные вопросы