2016-05-20 104 views
-1

我使用屬性路由,其中​​,所述編譯器顯示錯誤具有問題2版本「類型‘ValuesController’已經定義了一個名爲‘獲取’具有相同的參數類型構件」。網頁API使用屬性路由

我已經檢查了config.MapHttpAttributeRoutes()是在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"; 
    } 

從閱讀http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2這樣的事情應該是可能的。

回答

1

你的代碼是無效的C#,甚至除了網頁API。您不能兩次定義相同的函數簽名。如果第二個Get重命名爲GetNew,或將其移動到不同的控制器,它應該工作。

+0

我改變第二獲取到GetV2和完美的作品。 – Jay1b

1

的問題,在我看來,就是你有兩種方法具有相同的名稱和參數,這是不是在C#允許的 - 如果你真的必須有相同的方法名,你需要重載的數量的參數,和/或它們的類型:

public string Get(int id, int id2) 

或者

public string Get(Guid id)