Области в нескольких проектах: виды не найдены в дочерних проектах.

StackOverflow https://stackoverflow.com/questions/1838629

Вопрос

Я следую этому руководству из MSDN о «Создание приложения ASP.NET MVC Areas с использованием нескольких проектов».Поскольку ASP.NET MVC 2.0 — это всего лишь предварительная версия, можно предположить, что в ней есть некоторые ошибки.

Моя проблема в том, что это просто не работает! По крайней мере, не так, как предполагалось.После того, как все настроили и нажали F5, можно было подумать, что все заработает, аккуратно!БИП.Неправильный.

Он не находит представления в дочернем проекте!Потому что в моем случае он пытается искать внутри ~/Views который, конечно же, находится в родителе!

При отладке я вижу, что он запускает контроллер внутри моего дочернего проекта, но при использовании return View(); в этом действии он просматривает папки родительского представления.

Я спрашиваю: Баг или особенность?

Пробовал это как в Vs2009, так и в Vs2010 с Framework 3.5 и 4.0.

Это было полезно?

Решение

Я ввел в Google «области нескольких проектов» и наткнулся на этот пост: http://forums.asp.net/p/1494640/3540105.aspx.Обратите особое внимание на ответ Фила Хаака.

Похоже, что определение ваших представлений в родительском проекте «функционирует как задумано» из-за этой записи в сообщении MSDN: Now that all the code is in place, the final step is to customize the build process for each area project. This customization causes some child-area files, such as the views, to be copied to the main project before the application is built.

«Проблема» с публикацией заключается в том, что она была определена для бета-версии, где этот этап сборки был легко доступен.RC+ вам придется указать на сборку Futures и назначить шаг сборки немного иначе, если вы выберете этот путь.

Если вам не нравится направление, которое это вас подталкивает, часть MvcContrib, посвященная переносимым областям, о которой упоминает Фил, примерно так же хороша, как и альтернатива.

Другие советы

Я пережил ту же боль, что и ты.Это то, что я сделал.

  1. Убедился, что у меня запущен MVC 2 RC (удалить бета-версию 2, установить RC).
  2. Воссоздал проект с нуля.
  3. Нет необходимости редактировать файлы csproj, не нужно создавать маршруты.cs и не нужно редактировать global.ascx.cs, просто щелкните основной проект правой кнопкой мыши, чтобы открыть контекстное меню.Из пункта меню «Добавить» вы можете создать новую область.
  4. Представления должны быть в основном проекте, или вы можете использовать информацию в этом постеhttp://forums.asp.net/p/1494640/3540105.aspx, что я планирую сделать, чтобы виды были в каждой области.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top