C# REST API get不接受C中的多个参数

C# REST API get不接受C中的多个参数,c#,.net,asp.net-web-api,asp.net-web-api2,C#,.net,Asp.net Web Api,Asp.net Web Api2,我正在使用.NET4.5框架构建RESTAPI。这个API有一个带有多个参数的get方法,但是当我调用API时,它会显示bad request第二个参数为null。实际上,我正在传递第二个参数的值。下面是方法的实现 [HttpGet()] [Route("api/Mycontroller/{useid:int}")] public List<GetDetails> GET([FromUri()] int useid, DateTime loginDate) { // Som

我正在使用.NET4.5框架构建RESTAPI。这个API有一个带有多个参数的get方法,但是当我调用API时,它会显示bad request第二个参数为null。实际上,我正在传递第二个参数的值。下面是方法的实现

[HttpGet()]
[Route("api/Mycontroller/{useid:int}")]
public List<GetDetails> GET([FromUri()] int useid,  DateTime loginDate)
{
    // Some logic
}
由于请求错误,结果返回空值

我尝试了各种查询字符串的可能性,但都不起作用。我试图从URI和Body中删除route,但这也无济于事

我做错了什么?

您还需要将第二个参数添加到方法的[Route]属性中-如下所示:

[Route("api/Mycontroller/{useid:int}/{loginDate}")]
public List<GetDetails> GET([FromUri()] int useid,  DateTime loginDate)
string queryUrl = $"api/Mycontroller/{userid}/{TodaysDateParameter}";

HttpResponseMessage clientResponse = Task.Run(async () => { return await client.GetAsync(queryUrl).Result;

@Camiloterivinto如果你能阅读完整的问题,那么你就会理解我尝试过的问题和各种实现。如果你帮助解决问题,而不是投反对票和评论,我会非常满意。为什么投反对票,这个问题已经够清楚了?首先尝试将loginDate参数定义为字符串。这样,模型绑定就不需要尝试将参数转换为DateTime,您将看到确实可以传递第二个参数。您尚未指明TodaysDateParameter的格式,但我怀疑它是模型绑定器无法识别的格式。@Joe:当我在类似TodaysDateParameter:Datatime}的路由中定义TodaysDateParameter的参数类型时,这也没有帮助。奇怪的是,传递给控制器的datetime参数以同样的方式到达。我的意思是,我有一个MVC控制器,它从AJAX调用中获取参数,这个控制器创建httpclient请求,并在内部调用webapi。控制器正在获取值,但不是API。您仍然没有说在您的C代码中发出请求的参数是什么。是约会时间吗?在这种情况下,代码将使用默认的区域性特定格式将其格式化为字符串。这可能不是您的webapi所期望的。它的datetime用c代码表示。Datetime格式为DD-MM-YYYY HH:MM:SSDateTime参数有其自身的问题,但:
string queryUrl = $"api/Mycontroller/{userid}/{TodaysDateParameter}";

HttpResponseMessage clientResponse = Task.Run(async () => { return await client.GetAsync(queryUrl).Result;