我正在从Angular2应用程序调用ASP.NET MVC Web API控制器操作。我可以接受这样的调用对象:

    [Route("api/getItems")]
    [HttpPost]
    public ReturnObject GetItems(DateRangeVM dateRange){
    }

但是,我不想做一个帖子,我希望它是一个get,所以当我从angular 2调用这个时,我想要这样的东西:
return this.http.post(this.API_URL_BASE + '/api/getItems', dateRange, defaultOptions).map((response: Response) => {
      return <any[]>response.json();
    }).catch(this.handleError);
  }

但实际上更像这样:
return this.http.get(this.API_URL_BASE + '/api/getItems', dateRange, defaultOptions).map((response: Response) => {
      return <any[]>response.json();
    }).catch(this.handleError);
  }

但是,最后一个选项不接受数据作为第二个选项。我不想将数据作为字符串参数传递,因为当数据变得更复杂时,这太混乱了。

最佳答案

使用fromuri属性将查询字符串绑定到复杂对象。Angular需要将类的每个属性作为查询字符串参数发送。

public ReturnObject GetItems([FromUri] DateRangeVM dateRange){
}

10-07 16:53