2016-04-20 10 views
0

は、私はこれらの2つのconfigsを持っている:Web APIをルートconfigNotワーキング

config.Routes.MapHttpRoute(
      name: "CustomRate1", 
      routeTemplate: "api/CustomRate/{action}/{idCustomRate}", 
      defaults: new { controller = "CustomRate" } 
    ); 


    config.Routes.MapHttpRoute(
        name: "CustomRate", 
        routeTemplate: "api/CustomRate/{action}/{idCountry}", 
        defaults: new { controller = "CustomRate" } 
       ); 

はしかし、それらの一方のみが一度に動作します。 CustomRate1をルート上に置くと、CustomRate1を置かないと、CustomRate1を置かないと、逆のことも起こります。次のように

は、現在、私のコントローラで、私は

[HttpPost()] 
[HttpOptions] 
public CustomRateListReturnType GetCustomRateListByCountry(long idCountry) 
{ 

} 

[HttpPost()] 
[HttpOptions] 
public BaseReturnType DesactivateCustomRate(long idCustomRate) 
{ 

} 

を持っている任意の提案は、私は現在、これらの二つの呼び出し http://127.0.0.1/quotesystemserver/api/CustomRate/GetCustomRateListByCountry/5

http://127.0.0.1/quotesystemserver/api/CustomRate/DesactivateCustomRate/3

+0

2つのアクション方法がありますか? –

+0

はい、私が持っている: - [HttpPost()] [HttpOptions] 公共CustomRateReturnType SaveCustomRate(CustomRateBusiness customRate) { } [HttpPost()] [HttpOptions] 公共BaseReturnType DesactivateCustomRate(長いidCustomRate) { } – user2327579

答えて

0

を使用しています[OK]を私は何をやったことは次のとおりです。 -

次のように

私の設定は以下のようになります。 -

config.Routes.MapHttpRoute(
name: "CustomRate1", 
routeTemplate: "api/CustomRate/{action}/{id}", 
defaults: new { controller = "CustomRate" } 
); 

私のコントローラが含まれています: -

[HttpPost()] 
[HttpOptions] 
public CustomRateReturnType GetCustomRateListByCountry(long id) 
{ 

} 

[HttpPost()] 
[HttpOptions] 
public BaseReturnType DesactivateCustomRate(long id) 
{ 

} 
+0

まだ同じ問題がありますか?なぜあなたは[HttpOptions]が必要ですか?あなたは[httppost]で装飾しています。あなたはgetで電話していますか? –

0

1つのだけのルートを持っています。 {action}と{id}のプレースホルダは、URLで渡す値を受け取ります。 http://127.0.0.1/quotesystemserver/api/CustomRate/GetCustomRateListByCountry/5 を呼び出すと、ルートはGetCustomRateListByCountryおよびidを5として処理します。 名前をプレースホルダ{}に付けることは重要ではありません。これは単なるプレースホルダーの名前です。値はURLから取得されます。

0

use属性のルーティング、それはあなたが設定ルートを使用することができ、残りのためのアプリケーションを開発しているすべての人のためのカスタムルートのより鮮明な画像与えます:

[RoutePrefix("api/CustomRate")] 

そして、あなたとあなたのコントローラを飾る

HttpPost()] 
[HttpOptions] 
[Route("GetCustomRateListByCountry/{idCountry:long}] 
public CustomRateListReturnType GetCustomRateListByCountry(long? idCountry) 
{ 

} 

[HttpPost()] 
[HttpOptions] 
[Route("DesactivateCustomRate/{idCustomRate:long}] 
public BaseReturnType DesactivateCustomRate(long? idCustomRate) 
{ 

} 

がwebapiconfig.cs

で以下のコードを追加します。アクションメソッドを次のように

config.MapHttpAttributeRoutes();

関連する問題