2017-07-20 61 views
1

角URLSearchParams我有一個Asp.Net的Web API控制器是這樣的:不工作的多個PARAMS

[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

它爲我用下面的

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 
4

我有同樣的問題,才注意到我沒有導入它, 你必須在使用它之前導入URLSearchParams

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

享受編碼!

+0

我不知道我浪費了多少時間! –