2012-02-19 5 views
33

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

ответ

53

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

+0

Итак, я могу добавить подпапку api в папку контроллеров и добавить туда контроллеры api? – terjetyl

+0

@TT., Да, это возможность. –

+2

Или, возможно, область для веб-api более уместна? – terjetyl

Смежные вопросы