Области над несколькими проектами - представления не найдены в дочерних проектах - PullRequest
3 голосов
/ 03 декабря 2009

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

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

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

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

Я спрашиваю, ошибка или функция?

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

Ответы [ 2 ]

4 голосов
/ 04 января 2010

Я добавил в 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 Phil, посвященная переносным областям, примерно так же хороша, как и альтернатива.

0 голосов
/ 30 декабря 2009

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

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

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

...