2017-10-04 99 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应用程序。 –

相关问题