2012-02-19 12 views
33

私はmvc 4 betaの新しいwep apiを使って、既存のmvcサイトに新しいapiコントローラを追加しています。問題は、Web 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

または、Web APIのエリアが適切かもしれませんか? – terjetyl

関連する問題