我正在使用带有 MVC4 的 WebAPI,执行如下所示的 http 获取:
api_version=2&products=[{"id":97497,"name":"iPad"}]&pageno=1
映射到此调用的 get 操作控制器的签名是:
[HttpGet]
public string Get([FromUri] ProductRequest request){ ... }
问题是传递到上述 Get 操作方法的 ProductRequest 对象包含产品的空值,而所有其他值都正常。
所以它似乎很难将 products=[{"id":97497,"name":"iPad"}] 转换为正确的对象类型,其定义为:
public IEnumerable<Products> products { get; set;}
在 ProductRequest 模型和 Products 类中看起来像:
public int id { get; set; }
public string name { get; set; }
作为附加信息,当使用带有 POST 而不是 GET 的相同调用时,它工作正常,对象被正确转换。
那么,我做错了什么,如何让http GET正确地将查询参数转换为传入的模型?