2017-10-04 70 views
0

我在寫一個小型的Web API控制器。目前,我已經路由的如何在ASP.NET核心2.0控制器上同時具有'按ID'和'按名稱'路由?

[HttpGet("{id}"}] 

路徑,它工作正常:本地主機:8080 /控制器/ 1返回與ID相同的項目1

的問題是,我想加入'get by name'request:

[HttpGet("{name}")] 

我該怎麼去做這件事?

謝謝您的時間

+0

不是很確定你在問什麼..你想在同一個類中有兩個GET請求嗎? – AGrammerPro

+0

基本上我想在同一個控制器路由上有2個GET請求。一個接收一個字符串,另一個接收一個整數。現在問題現在可以通過下面的答案解決,對不起,我不能更清楚地說明措辭。 –

回答

2

在你可以把一個路由約束,表明id是一個int這個確切的例子。它應該在那之後正確地路由。

[HttpGet("{id:int}")] 
public string GetById(int id) 
{ 
    return id.ToString(); 
} 

[HttpGet("{name}")] 
public string GetByName(string name) 
{ 
    return name + " name"; 
} 
+0

非常感謝。完美的作品。 –

+0

爲什麼我看到下一個錯誤:HttpGetAttribute不包含帶1個參數的構造函數?我正在使用web api應用程序。 –

相關問題