2016-10-19 31 views
0

私たちはASP.NET MVCアプリケーションを開発しています。代わりに、APIサービス/コントローラを、という名前のフォルダ内でAPI_Servicesという名前で別々に設定します。Web ApiルートコンフィグレーションASP-NET MVC

問題は次のとおりです。私たちはその経路を設定/定義しますか? Tipicallyは(App_StartフォルダとWebApiConfig.csファイルで)次のコードのようなものです:

routeTemplate: "API_Services/api/{controller}/{id}", 

またはこの:

routeTemplate: "api/API_Services/{controller}/{id}", 

doesnの」

routes.MapHttpRoute(
name: "API Default", 
routeTemplate: "api/{controller}/{id}", 
defaults: new { id = RouteParameter.Optional } 

我々は次のようにrouteTemplateを設定してみてください仕事...誰かが私たちを助けることができますか?ありがとうございました!

+0

routeTemplate: "API_Services/api/{controller}/{id}" –

+0

@viveknunaは、私がコメントで言ったように動作しません – carlosfcmendes

+0

申し訳ありませんが誤解されました。 –

答えて

1

いくつかのWeb APIコントローラーを使用している場合は、 「ASP.NET Web API 2:RESTサービスをビルドして2番目のエディションを完成する」をお読みになることをお勧めします。Jamie Kurtz、Brian Wortman " apiのバージョンに関する章があり、著者はフォルダ(V1フォルダ、V2など)を通したルーティングについて説明します。 また、ちょうど"inline-attribute" routingを使用することができます。 そして、Areasについて読むことができます(あるいは単にルーティング設定or play with itにいくつかの "名前空間"を入れてみてください)。私はそれが助けてくれることを願っています。

0

我々はこのようstrucureされています明らかに働く(

Controllers (Folder)  
    A_Controller 
    B_Controller 
    API (Folder) 
     A_Controller 
     B_Controller 

が、私は行くちょうど明日はテストしてからIすることができます

Controllers (Folder) 
    A_Controller 
    B_Controller 
API (Folder) 
    A_Controller 
    B_Controller 

Google検索の多くの後、私はこれを見つけました

+0

コントローラのパスを指定する必要はありません。 –

0

あなたが話している変更は、慣習が無視するルートではなく、あなたのフォルダにあります。

それはどのようなプロジェクトフォルダに移動しても、それがXXXControllerという名前の場合、ルート変更なしで見つかります。したがって、次のこので:

routes.MapHttpRoute(
name: "API Default", 
routeTemplate: "api/{controller}/{id}", 
defaults: new { id = RouteParameter.Optional } 

http://yoursite.com/api/XXXControllerまだそれは別のフォルダにある場合でも、あなたのコントローラを見つける:

あなたはより多くの制御をしたいが、私はこれがあるとは思わない場合は、デフォルトで遊ぶことができますあなたが求めているもの。たとえば:人々はhttp://yoursite.com/api/API_servicesを訪れるたび

routes.MapHttpRoute(
name: "API Default", 
routeTemplate: "api/API_services/{id}", 
defaults: new { controller="mycontroller" id = RouteParameter.Optional } 

だから、使用されるコントローラは、 "mycontroller" になります。

関連する問題