首页 > 解决方案 > 将带有对象的查询字符串传递给WebAPI?

问题描述

是否可以将查询字符串和模型对象从角度传递给 webapi?然而,我的第一个参数总是被填充,即使我看到请求有效负载中的所有数据,模型参数也是空的。

我的模型

public Class Person
{
   public string Name {get; set;}
   public DateTime date {get; set;}
}

我的 API 方法

    [Route("MyRoute/")]
    [HttpPost]       
    public DataSourceResult DataResult([ModelBinder(typeof(WebApiDataSourceRequestModelBinder))]DataSourceRequest request, Person model)
    {          

    }

我的查询字符串

http://localhost:60655/api/DataInput/DataResult/?page=1&pageSize=22

请求有效载荷

model: {name: "Time", date: "2014-12-18T18:35:52.087Z"…}

我的帖子电话

const queryStr = `${toDataSourceRequestString(state)}`;
const ComplexObj = {
      model: model,     
    };
    const url = this._srvrUrl + apiRoute;    
    return this._http
      .post(`${url}?${queryStr}`, ComplexObj)

标签: angularasp.net-web-apikendo-ui

解决方案


您应该可以使用[FromUri],例如:

[Route("MyRoute/")]
[HttpPost]       
public DataSourceResult DataResult([FromUri] DataSourceRequest request, Person model)
{          

}

请参阅已经回答的这个非常相似的问题:Complex type is getting null in a ApiController parameter


推荐阅读