如何将url中的DateTime值传递给Postman的ASP.Net Core MVC Controller

问题描述 投票:0回答:1

我试图通过Postman发送请求来测试一个端点,它将两个DateTimes作为参数。这是Controller方法:

[HttpGet("metrics/user/{ownerId}/{startDate}/{endDate}")]
public async Task<IActionResult> GetUserCompletionRate(int ownerId, DateTime startDate, DateTime endDate)
{
    //Check if user exists
    var userExists = await unitOfWork.userAccountRepository
            .UserAccountExists(ownerId);
    //User doesn't exist
    if (!userExists) return NotFound("Couldn't find user.");
    //User exists
    Double completionRate = await unitOfWork.completionLogEntryRepository.GetUserCompletionRate(ownerId, startDate, endDate);
    return Ok(completionRate);
}

我试过像这样发送它们:

http://.../api/metrics/user/2/2018-7-23T00:00:00/2018-7-24T10:24:00

然后我尝试从路由中删除参数并将其发送到这样:http://.../api/metrics/user?ownerId=2&startDate=2018-7-23T00:00:00&endDate=2018-7-24T10:24:00

但没有任何工作。我也尝试将路线中的日期声明为{startDate:datetime}而没有。如何从Postman发送DateTime对象。我一直收到404 Not Found错误。

datetime asp.net-core-mvc postman
1个回答
1
投票

这是两个MVC控制器和API控制器的工作演示。

MVC控制器

public class HomeController : Controller
{

    [HttpGet("metrics/user/{ownerId}/{startDate}/{endDate}")]
    public async Task<IActionResult> GetUserCompletionRate(int ownerId, DateTime startDate, DateTime endDate)
    {
        return Ok("Hello");
    }

要求:https://localhost:44393/metrics/user/2/2018-7-23T00:00:00/2018-7-24T10:24:00

API控制器

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpGet("metrics/user/{ownerId}/{startDate}/{endDate}")]
    public async Task<IActionResult> GetUserCompletionRate(int ownerId, DateTime startDate, DateTime endDate)
    {
        return Ok("Hello");
    }

要求:https://localhost:44393/api/values/metrics/user/2/2018-7-23T00:00:00/2018-7-24T10:24:00

© www.soinside.com 2019 - 2024. All rights reserved.