1

JSONオブジェクトをtypescript POST呼び出しからWeb APIメソッドに渡そうとしています。 Fiddlerは、オブジェクトがJSONに変換され、Content-Typeが 'application/JSON'であることを示します。しかし、APIコントローラーでは、パラメーター値はJSONの代わりにnullを表示します。TypescriptからWeb API APIへのPOST、JSONオブジェクトを渡すことができません

活字体:

createPO(product: string): Promise<string> { 
    var headers = new Headers(); 
    headers.append('Content-Type', 'application/json'); 
    let options = new RequestOptions({ headers: headers }); 
    return this._http.post(this._creatPOUrl, JSON.stringify(product), options) 
    .toPromise() 
    .then(response => <string>response.statusText) 
    .catch(this.handleError); 
    } 

ウェブAPI: [HttpPost] タスクCreatePOInMO([FromBody]列製品) {リターンOK()非同期公衆。 }

製品にはnullが含まれています。 製品オブジェクト内の実際の値をtypescript(JSON)から渡すと、それは機能します。しかし、私はこれのようにハードコードすることはできません。

私はこのポストに従っています:Angular2 Service not passing JSON to WebAPI しかし、私はここに記載されていることをやっているようです。 2角度で

+0

があなたのWEB-APIの設定を投稿することができますか?私は、JSONコンバータがJSONフォーマットを標準のJSONと同じように期待していないとします。例えば、同じ名前の「test:」という名前のフロントエンドのantから期待されるクラスを{name: 'test '}キャメルケースのため、WEB-API標準コンバータは応答を変換できませんでした。また、リクエストが役に立ちます – Nicu

答えて

3

posting JSON with the Http client、あなたがJSON.stringifyを呼び出すべきではありません。

this._http.post(this._creatPOUrl, product, options) 
+0

に変更されました。var POCartItems = JSON.stringify(product); リターンthis._http.post(this._creatPOUrl、POCartItems、オプション) とWeb APIで:[HttpPost]公共タスク CreatePOInMO([FromBody]列POCartItems)非同期 がまだ機能していません。 – namrata

+0

あなたは何を意味するのか分かりません。 'JSON.stringify'呼び出しは必要ありません。リンクされたドキュメント/ガイドを見てください。 – cartant

関連する問題