【问题标题】:Angular URLSearchParams not working for multiple paramsAngular URLSearchParams 不适用于多个参数
【发布时间】:2017-12-26 20:45:18
【问题描述】:

我有一个像这样的 Asp.Net web api 控制器:

[HttpPost]
public IHttpActionResult RepHistorie([FromUri]string vnr, [FromUri]string lagerort)
{
    ...
}

所以你可以看到有 2 个值。 我正在使用 URLSearchParams 发送参数。不幸的是,这不适用于一个以上的参数。我不知道为什么,这对我来说真的很奇怪。

let params: URLSearchParams = new URLSearchParams();
params.set('vnr', this.vnr);
params.set('lagerort', this.lagerort);

var postUrl = 'http://123.456.7.89:12345/api/lager';

let requestOptions = new RequestOptions();
requestOptions.search = params;

this.http.post(postUrl, requestOptions)
  .subscribe(data => {
    // success

  }, error => {
    // error
});

在我的另一个控制器中,只有一个参数,它工作得很好。有人知道为什么吗?

我也试过了:

params.append('vnr', this.vnr);
params.append('lagerort', this.lagerort);

编辑

它是这样工作的(虽然不是一个干净的方式):

var postUrl = 'http://123.456.7.89:12345/api/lager?vnr=' + this.vnr + '&lagerort=' + this.lagerort;
var postObject = {};

【问题讨论】:

    标签: asp.net angular asp.net-web-api


    【解决方案1】:

    在注意到我没有导入它之前,我遇到了同样的问题, 您必须先导入 URLSearchParams 才能使用它

    import {URLSearchParams} from '@angular/http';
    

    享受编码!

    【讨论】:

    【解决方案2】:

    以下内容对我有用

        let params: URLSearchParams = new URLSearchParams();
        params.set('vnr', this.vnr);
        params.set('lagerort', this.lagerort);
        let requestOptions = new RequestOptions();
        requestOptions.params = params; // instead of requestOptions.search = params
    

    【讨论】:

      猜你喜欢
      • 2019-10-23
      • 2017-09-21
      • 1970-01-01
      • 2019-02-24
      • 2020-10-18
      • 2014-07-27
      • 1970-01-01
      • 2019-05-09
      • 2018-06-23
      相关资源
      最近更新 更多