在WEB API POST方法中检索params

时间:2015-12-28 20:29:04

标签: c# asp.net json http asp.net-web-api

在我的web api中,我主要使用POST方法,因此客户端可以使用JSON发送函数参数。但是,我注意到在客户端和服务器上都有这些参数的模型(dto)并没有多大意义。或者是吗?

由于我正在使用POST是否需要创建一个模型对象来进行绑定?有时我实际上正在处理像Customer这样的实体并且它完全有意义,但是当我处理3个随机参数时,我真的需要创建一个模型(dto)以便我可以将数据检索到POST函数中吗?

这是我的WEB API中的POST函数:

[HttpPost, Route("GetAccountInformation")]
public IActionResult RetrieveAccountInformation(GetAccountInformationParamsObj myParams)
{
    var retVal = _repository.GetAccountInformation(myParams.StartDate, myParams.EndDate, myParams.Count)

    return Ok(retVal);
}

以下是客户端将在POST正文中发送的内容的示例:

{
    "StartDate":"10-25-2015",
    "EndDate":"11-25-2015",
    "Count":20
}

如果以下方法可行,但在提出请求时param值最终为空,那将是很好的:

[HttpPost, Route("GetAccountInformation")]
    public IActionResult RetrieveAccountInformation([FromBody] DateTime startDate, DateTime endDate, int count = 0)
    {

    }

1 个答案:

答案 0 :(得分:2)

您不需要执行POST,您尝试做的事情并不能证明POST,只是尝试使用 Attr {从uri获取数据{1}}像这样:

[FromUri]

并按照以下方式发出请求:

  

<强> / GetAccountInformation的StartDate = 2015年10月25日&安培;结束日期= 2015年11月25日&安培;计数= 20