Mix web api контроллеры и контроллеры сайтов - PullRequest
33 голосов
/ 20 февраля 2012

Я возился с новым wep api в бета-версии mvc 4 и добавляю несколько новых контроллеров api на свой существующий сайт mvc.Проблема в том, что я не могу назвать контроллеры веб-API так же, как мои существующие контроллеры.На данный момент я дал им такие имена, как ProductApiController, но это не очень похоже на остальные.Какова хорошая стратегия для присвоения имен этим новым контроллерам при добавлении их на существующий сайт MVC?

1 Ответ

54 голосов
/ 20 февраля 2012

Проблема в том, что я не могу назвать контроллеры веб-API так же, как мои существующие контроллеры.

Ваши контроллеры API могут иметь то же имя, что и ваши существующие контроллеры.Просто поместите их в другое пространство имен, чтобы компилятор был доволен.

Пример:

namespace MyAppName.Controllers
{
    public class ProductsController: Controller
    {
        public ActionResult Index()
        {
            var products = productsRepository.GetProducts();
            return View(products);
        }
    }
}

и контроллер API:

namespace MyAppName.Controllers.Api
{
    public class ProductsController: ApiController
    {
        public IEnumerable<Product> Get()
        {
            return productsRepository.GetProducts();
        }
    }
}

, и тогда у вас есть: /products и /api/products соответственно для работы.

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