我有一个像这样的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 = {};
答案 0 :(得分:10)
在注意到我没有导入它之前,我遇到了同样的问题, 您必须在使用之前导入URLSearchParams 。
import {URLSearchParams} from '@angular/http';
享受编码!
答案 1 :(得分:0)
以下
对我有用 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