Как зарегистрировать контроллер, созданный в AREA - PullRequest
1 голос
/ 28 февраля 2012

Я использую веб-API MVC4 для предоставления контроллера.

Изначально я создал созданный проект MVC4 WEBAPI, установил, чтобы проект не открывал никакую веб-страницу, подождите, пока внешнее приложение вызовет URL (WEBAPI).Проект в VS2010 настроен на запуск с IIS7 Express, а не с Dev Server VS2010.Это работает хорошо, браузер предлагает мне загрузить файл.Это нормально для меня, так как браузер не знает, что делать с возвращенными данными (RAW TEXT).

Затем я создал AREA в области проекта MVC4, затем добавил контроллер (тип WEB API).).

Затем я еще раз запустил проект и в браузере ввел URL (WEB API).И это терпит неудачу.

Ред.

Ответы [ 2 ]

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

DefaultHttpControllerFactory не работает с областями по умолчанию.Чтобы получить эту функциональность, вы должны написать свой собственный HttpControllerFactory.

Вы можете найти, как это сделать в посте Как создать HttpControllerFactory для поддержки областей

1 голос
/ 16 июля 2012

Хотя можно размещать контроллеры WebApi в разных областях, ASP.NET MVC 4 RC по-прежнему будет обрабатывать эти ApiControllers так, как если бы они все находились в одном и том же пространстве имен.Это ограничение DefaultHttpControllerSelector, который отвечает за выбор соответствующего ApiController.

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

http://blogs.infosupport.com/asp-net-mvc-4-rc-getting-webapi-and-areas-to-play-nicely/

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