2016-06-29 45 views
0

我正在嘗試在ASP.NET Core應用程序中創建一個API方法,該方法可能會或可能不會收到整數輸入參數。我有下面的代碼,但得到這個錯誤。我究竟做錯了什麼?Web API屬性路由中的可選INT參數

// GET: api/mycontroller/{id} 
[HttpGet("id:int?")] 
public IActionResult Get(int id = 0) 
{ 
    // Some logic here... 
} 

這裏是我得到的錯誤: enter image description here

+0

你得到什麼錯誤? –

+0

只是在原來的帖子中添加了錯誤。 – Sam

+0

不太熟悉asp.net核心,沒有開發者。 env方便,但我懷疑它應該是這樣的:'「{id?:int}」'',因此你表示'id'是可選的,類型是'int'。所以你錯過了'{'和'}',並且'''在我所知道的地方是錯誤的。 –

回答

0

"id:int?"不是一個有效的路徑模板,它只是文字(字符串一樣,如果你希望請求的URL從字面上看起來像http://server/api/MyController/id:int?這是。不允許 有趣的是,這僅僅是?字符的,因爲,如果你刪除了則文本將被允許(即使它是無用的)

"{id:int?}"是正確的RO。 UTE模板,將正常工作,即網址看起來像http://server/api/MyController/42http://myserver/api/MyController/這將給默認值

所以方法應該是這樣的:

// GET: api/mycontroller/{id} 
[HttpGet("{id:int?}")] 
public IActionResult Get(int id = 0) 
{ 
    // Some logic here... 
}