Angular 带有参数的 httpclient get 没有到达我的 web api 方法

Angular httpclient get with params is not arriving at my web api method

晚上,所以我的(.net core)网络中有以下方法api

   [HttpGet("GetAllMediaWithTag")]
        public IActionResult GetAllMediaWithTag(Dictionary<string, string> tags)
        {

我的 Angular 前端有这个

  getAllContentWithTag(): Observable<Item> {
    let params = new HttpParams();
    params = params
    .set('country', 'Japan');

    return this.http.get<Item>(this.url, {params: params})
  }

我已经用 postman 测试了我的网络api,一切似乎都运行良好。 正文中的一小段 json 正确识别为我的字典标签参数。

但是,当我尝试对 getAllContentWithTag 函数执行相同操作时,它不起作用。就好像签名不匹配一样。

请帮忙。

更新:

我是个傻瓜,我一直在检查我的控制台,发现 angular 创建了一个查询字符串。这不是我的网站 api 所接受的内容。 我还按照你们的建议添加了属性。

您需要告知您的参数将在查询参数中。在你的情况下,你的后端需要它来自 body.

要做到这一点,您必须将 FromQuery 属性添加到您的参数。

  [HttpGet("GetAllMediaWithTag")]
        public IActionResult GetAllMediaWithTag([FromQuery] Dictionary<string, string> tags)
        {}