[英]web api 2 versioning using attribute routing
我在使用属性路由时遇到问题,其中编译器显示错误“类型'ValuesController'已经定义了具有相同参数类型的名为'Get'的成员”。
我检查了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,这样的事情应该是可能的。
您的代码是无效的C#,甚至不包括Web API。 您不能两次定义相同的函数签名。 如果将第二个Get
重命名为GetNew
,或将其移至其他控制器,则它应该可以工作。
正如我所看到的,问题是您有两个具有相同名称和参数的方法,这在C#中是不允许的-如果确实必须具有相同的方法名称,则需要重载参数的数量,并且/或其类型:
public string Get(int id, int id2)
要么
public string Get(Guid id)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.