C# 如何从Postman测试web api的多个可选参数

C# 如何从Postman测试web api的多个可选参数,c#,asp.net-web-api,postman,C#,Asp.net Web Api,Postman,我正在学习和创建示例WebApi。在Web Api项目中,控制器名称为Producer。我试图通过邮递员得到名字,但没有得到任何结果 我遵循了这一点,但没有得到结果 从邮递员我传递的要求如下 http://localhost:62116/api/Producer/GetUserAgencyDetails/?firstname=peter WebAPI标题如下所示 [HttpGet] [Route("GetUserAgencyDetails/{firstName}/{l

我正在学习和创建示例WebApi。在Web Api项目中,控制器名称为
Producer
。我试图通过邮递员得到名字,但没有得到任何结果

我遵循了这一点,但没有得到结果

从邮递员我传递的要求如下

 http://localhost:62116/api/Producer/GetUserAgencyDetails/?firstname=peter
WebAPI标题如下所示

[HttpGet]            
[Route("GetUserAgencyDetails/{firstName}/{lastName}/{agencyName}/{emailAddress}/{userId}")]
public async Task<User> GetUserAgencyDetails(string firstName = "", string lastName = "", string agencyName = "", string emailAddress = "", string userId ="")
{    
  //some code
}
[HttpGet]
[路由(“GetUserAgencyDetails/{firstName}/{lastName}/{agencyName}/{emailAddress}/{userId}”)]
公共异步任务GetUserAgencyDetails(字符串firstName=,字符串lastName=,字符串agencyName=,字符串emailAddress=,字符串userId=)
{    
//一些代码
}

请告诉我我犯了什么错误。

我认为您的路由不正确,请尝试这样使用它:

[HttpGet]            
[Route("Api/Producer/GetUserAgencyDetails")]
public async Task<User> GetUserAgencyDetails(string firstName = "", string lastName = "", string agencyName = "", string emailAddress = "", string userId ="")
{    
  //some code
}
              config.Routes.MapHttpRoute(  
                name: "DefaultApi",  
                routeTemplate: "api/{controller}/{action}/{id}",  
                defaults: new  
                {  
                    id = RouteParameter.Optional  
                }  
            );  

您是否调试了web API代码以了解它为什么不返回任何结果?当您从postman调用web API时,是否会收到200个响应代码?您试图向其发出请求的API的url是什么?向我们显示您试图发送的邮递员请求。我对您提到的web API方法的路由有疑问。只需删除GetUserAgencyDetails之后的所有字段和正斜杠,然后再次点击API即可。。我相信它会工作,您尝试使用querystring,但您通过参数定义路由。如果您喜欢参数,请避免询问。