Подтвердить что ты не робот

Смешивание веб-страниц Api и ASP.Net MVC в одном проекте

Как мне смешивать страницы Web API и ASP.Net MVC в одном проекте?

Например, у меня есть модель User. Я хотел бы, в рамках того же проекта, иметь ApiController, который будет отвечать на все HTTP-глаголы для управления объектами пользователя и в то же время иметь контроллер, который будет возвращать соответствующие строго типизированные представления в зависимости от запрашиваемого действия.

Я не могу назвать оба контроллера UserController. Каков наилучший способ обойти это? Должен ли я назвать один UserApiController и другой UserController? Любые другие предложения?

4b9b3361

Ответ 1

Вы можете поместить их в отдельные пространства имен, например MyApp.Controllers.UsersController и MyApp.Controllers.WebAPI.UsersController.

Это позволит вам выявлять аналогичные маршруты URI в MVC и WebAPI, например:

/users/1      << MVC view
/api/users/1  << Web API

Ответ 2

Реализация WebApi должна быть добавлена ​​как отдельная область

Ответ 3

Я не изменил пространства имен, единственное, что мне нужно было сделать, это сначала зарегистрировать WebApi, а затем маршрут MVC

//First register WebApi router
GlobalConfiguration.Configure(WebApiConfig.Register);
//and register Default MVC Route after
RouteConfig.RegisterRoutes(RouteTable.Routes);

и все отлично работает!