Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 路径和查询中带有参数的WebApi 2路由_C#_Asp.net Web Api_Routes_Asp.net Web Api2 - Fatal编程技术网

C# 路径和查询中带有参数的WebApi 2路由

C# 路径和查询中带有参数的WebApi 2路由,c#,asp.net-web-api,routes,asp.net-web-api2,C#,Asp.net Web Api,Routes,Asp.net Web Api2,我最近开始将现有的web服务从WCF迁移到ASP.NET WebApi 2。其中一个遗留端点有点奇怪,我在弄清楚如何在WebApi控制器中复制它时遇到了问题。问题是端点的查询参数与路径的一部分同名 在WCF,我们有 [WebGet(UriTemplate = "configuration/id?id={id}")] Config GetConfigByID(string id); 我试图在一个控制器中复制它,但是客户端收到404个错误 [Route("configuration/id") pu

我最近开始将现有的web服务从WCF迁移到ASP.NET WebApi 2。其中一个遗留端点有点奇怪,我在弄清楚如何在WebApi控制器中复制它时遇到了问题。问题是端点的查询参数与路径的一部分同名

在WCF,我们有

[WebGet(UriTemplate = "configuration/id?id={id}")]
Config GetConfigByID(string id);
我试图在一个控制器中复制它,但是客户端收到404个错误

[Route("configuration/id")
public IHttpActionResult GetConfigByID(string id)
{
    Config config = GetConfig(id);
    return Ok(config);
}
虽然我很想更改端点,但我需要它与现有客户机一起工作

[Route("configuration/id")
public IHttpActionResult GetConfigByID([FromUri] string id)
{
    Config config = GetConfig(id);
    return Ok(config);
}

您可以尝试FromUri属性没关系。我的问题完全正确。控制器中的其他东西是胖手指。继续