angular - 如何将非字符串相关数据传递到获取请求 web api

标签 angular http asp.net-web-api

我正在从 Angular 2 应用程序调用 asp.net mvc web api Controller 操作。我可以像这样接受来自调用的对象:

    [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 属性将查询字符串绑定(bind)到复杂对象。 Angular 需要将类的每个属性作为查询字符串参数发送。

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

关于angular - 如何将非字符串相关数据传递到获取请求 web api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44497519/

相关文章:

list - Web API 使用附加属性扩展列表

URL 中没有 ID 的 RESTful API

angular - 如果我有 3 个 URL 使用相同的 angular2 组件,我如何检测差异?

c# - url.link 错误 : A route named 'Default' could not be found in the route collection. 参数名称:name

angular - 如何在 Angular Material 的下拉菜单中显示表单?

c# - 浏览器尝试连接和 Socket.Accept() 之间的长时间延迟 [~1s]

javascript - $http 响应 Set-Cookie 不可访问

rest - HTTP API : Communicating the need to authenticate to a third party

java - 使用 ionic 3 进行 HTTP Post

angular - 根据文本框 Angular 4 中输入的值启用/禁用按钮 - 初始加载不起作用