Смешать веб-api-контроллеры и контроллеры сайта - программирование
Подтвердить что ты не робот

Смешать веб-api-контроллеры и контроллеры сайта

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

4b9b3361

Ответ 1

Проблема в том, что я не могу назвать контроллеры web-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 соответственно для работы.