2016-05-20 28 views
-1

コンパイラがエラー "タイプ 'ValuesController'を表示している属性ルーティングを使用しているときに、同じパラメータタイプで 'Get'というメンバーを定義しています。属性ルーティングを使用したWeb APIのバージョン管理

私はconfig.MapHttpAttributeRoutes()は、このようなhttp://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2何かが可能なはず読めwebapiConfigファイル

// GET api/values/5 
    [Route("api/values/{id}")] 
    public string Get(int id) 
    { 
     return "value"; 
    } 

    [Route("api/v2/values/{id}")] 
    public string Get(int id) 
    { 
     return "value"; 
    } 

であることを確認しています。

答えて

1

あなたのコードは、Web API以外のC#では無効です。同じ関数の署名を2回定義することはできません。 2番目の名前をGetに変更してGetNewに変更するか、別のコントローラに移動すると正常に動作します。

+0

私は第二のGetV2に入手変更し、それが完璧に動作します。 – Jay1b

1

問題は、同じ名前と引数を持つ2つのメソッドがあることです。これはC#では許可されていません。実際に同じメソッド名を持つ必要がある場合は、引数、および/またはそれらの型の:

public string Get(int id, int id2) 

それとも

public string Get(Guid id) 
関連する問題