【发布时间】:2017-11-09 16:23:20
【问题描述】:
我无法使用 Angular2 将数组发送到 Web api。在我的打字稿中,我用这个来调用 api:
apiData(command?: string | null, array?: string[] | null): Observable<void> {
//let url_ = this.baseUrl + "/api/Data/command?";
let url_ = "/api/Data/command?";
if (command !== undefined)
url_ += "command=" + encodeURIComponent("" + command) + "&";
url_ = url_.replace(/[?&]$/, "");
//const content_ = JSON.stringify(array);
if (array !== undefined)
array && array.forEach(item => { url_ += "array=" + encodeURIComponent("" + item) + "&"; });
let options_: any = {
//data: content_,
method: "post",
headers: new Headers({
"Content-Type": "application/json",
})
};
Api 看起来像这样:
[Produces(typeof(void))]
[HttpPost("command")]
public HttpResponseMessage PostData(string command, string[] array)
{
当使用上面的例子时,api 在数组中接收到正确数量的行,但它们都是“[object Object]”。
如果我使用 JSON.stringify(array) 并将其作为数据发送:(在我的示例中注释掉)web api 只会得到一个空字符串。我发送的数组是 JSON。
这种方法在 Angularjs 中有效,但由于某种原因我无法让它工作。
【问题讨论】:
-
响应“[objectObject]”,你从哪里得到的?在组件级别还是在视图中?
标签: angular typescript