Я задавал аналогичный вопрос об этом в прошлом на StackOverflow, потому что хотел сделать то же самое. Однако в итоге я получил область «Api» и набор контроллеров, а также стандартный набор контроллеров MVC для веб-сайта.
Оглядываясь назад, это на самом деле не было чем-то плохим. Я обнаружил, что в любом случае я склонен делать разные вещи в каждом наборе контроллеров. Мои представления не просто CRUD, но, как правило, содержат дополнительные контекстные данные, поэтому приятно возвращать модели представлений, специфичные для этой страницы.
Я думаю, что если бы я придерживался своей цели объединить два, я мог бы получить либо чрезмерно сложные контроллеры, либо пользовательский интерфейс, который был бы не таким оптимальным, как мог бы быть. Так что, хотя это не прямой ответ на ваш вопрос, по моему опыту, невозможность сделать это может быть не такой уж плохой вещью.
Вместо этого я получил богатый набор компоновщиков и команд, которым делегирует большинство моих контроллеров. Таким образом, я могу повторно использовать большую часть логики контроллера, в то же время имея возможность делать определенные вещи для API, а не для Интернета:
http://www.paulstovell.com/clean-aspnet-mvc-controllers
person
Paul Stovell
schedule
16.05.2012