2012-06-22 2 views
5

я получил следующие настройки проектаASP.NET MVC 3 Структура - Перейти для просмотра в другом проекте

Проект А (основной)

  1. Бизнес
  2. данных
  3. View (осина .net MVC 3 проекта)

проект N

  1. Бизнес
  2. данных
  3. View (asp.net MVC 3 проекта)

Как я могу позвонить из проекта A Вид в Project N и N от назад к А. По существу то, что я пытаясь сделать, это пакет каждого проекта N, чтобы иметь свой собственный MVC, поскольку он исходит из разных источников и подключает его к основному проекту, а затем просто переводит его в правильное представление.

Можно ли это сделать? Или есть лучший способ сделать это?

ответ

0

Я стараюсь, если возможно, использовать другой подход. если я правильно понял, эти проекты каким-то образом являются плагинами, но они не являются отдельными приложениями. Также они теперь о друг друга, поэтому они связаны. Это, допустим, сложность, но я бы использовал только один проект asp.net mvc (веб-интерфейс ui). Все биты пользовательского интерфейса, которые принадлежат другим проектам, я бы сделал их помощниками (довольно много виджетов). Это означает, что каждый проект содержит только помощники, которые будут использоваться для построения представления.

Я думаю, что это немного архитектурная проблема, если вы хотите только сохранить представления в каждом проекте только ради размещения их в другой сборке. Идя по виджетам, может показаться, что mkore работает, но я думаю, что вы получаете максимальный контроль и уровень разделения, который вы хотите. Единственное, что у вас нет полных просмотров, но почему вы хотели бы иметь полные виды (частичные, макеты) в отдельных местах, если они будут использоваться только в одном месте ?!

Теперь, если каждый проект действительно является плагином, не зависящим от других плагинов, то наилучшим способом является сбор изображений. Но если Project B знает о представлении Project N, я думаю, что это решение более подходит. Это или все приложение слишком переработано. Разделение хорошо, когда оно не создает целых новых джунглей для навигации по нему.

+0

Привет, Майк, я думаю, вы поняли мою идею. Я думаю, что это почти так же, как подход Widget, который я принимаю, и хотя он немного связан, я все еще могу изменить источник данных и просто обновлять сборки без перекомпиляции всего веб-сайта. – fes

3

Вы можете написать обычай virtual path provider. Вот nice blog post, в котором показан пример такого поставщика виртуального пути, позволяющий вставлять представления Razor в сборки как ресурсы и повторно использовать их в нескольких приложениях.

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

+0

Спасибо Дарин, я сейчас смотрю на статьи. Первое впечатление заключается в том, что он выглядит довольно привлекательным, поэтому он увидит, насколько это возможно. – fes

+0

Вы также можете взглянуть на генератор Razor http://razorgenerator.codeplex.com/ для простого способа компиляции представлений в сборках. – MikeSW

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