2012-02-19 111 views
33

我正在使用mvc 4 beta中的新wep api,並在我現有的mvc站點中添加一些新的api控制器。問題是我無法將web api控制器命名爲與我現有的控制器相同。現在我已經給了它們像ProductApiController這樣的名字,但這不是很休息。將這些新控制器添加到現有mvc站點時,對於這些新控制器的名稱命名策略是什麼?混合web api控制器和站點控制器

回答

53

問題是我無法命名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分別與工作。

+0

那麼我可以在控制器文件夾中添加一個api子文件夾,並在那裏添加api控制器? – terjetyl 2012-02-19 22:35:01

+0

@TT,是的,這是一種可能性。 – 2012-02-19 22:36:15

+2

或者一個Web api的區域更合適? – terjetyl 2012-02-19 22:39:20