1

angularで投稿すると、カテゴリやステータスなどのオブジェクトが入力されないため、わかりません。ただの製品。ただし、Request.Form リストには情報があることに注意してください。バインダーが正しく実行されていません。私は何を間違っていますか?それは任意の Web API 構成ですか? application/json、[frombody] を介してデータを送信しようとしました...オプションがありません。前もって感謝します。

var product = {
  id: 1,
  name: "Name",
  categories: [
    { id: 1, name: "name 1" },
    { id: 2, name: "name 2" }
  ],
  status: { id: 1, name: "active" }
};

var config: ng.IRequestConfig;
config = { url: "", method: "POST", headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;' } };

self.$http.post("api/produto", $.param(product), config)
.success(function () {
  alert("OK");
});

    [HttpPost]
    public ProductInfo Post(ProductInfo item)
    {
        return item;
    }


モデル画像

リクエスト画像

4

4 に答える 4

0

または、ショートカット メソッドを使用することもできます。

$http.post('api/produto', data).then(successCallback, errorCallback);
于 2015-11-12T14:06:56.430 に答える
0

これが私が試すことです

var product = {
  id: 1,
  name: "Name",
  categories: [
    { id: 1, name: "name 1" },
    { id: 2, name: "name 2" }
  ],
  status: { id: 1, name: "active" }
};

var config: ng.IRequestConfig;
config = { url: "", method: "POST", headers: { 'Content-Type': 'application/json;charset=utf-8;' } };

self.$http.post("api/produto", product, config)
.success(function () {
  alert("OK");
});

異なる点は、実際の JavaScript オブジェクトを送信し、JSON としてシリアル化することです。Web API は、JSON を純粋な C# オブジェクトに逆シリアル化できます。

キーと値のペアを一致させようとすることは、通常、複雑なオブジェクトではただの狂気です。

于 2015-11-12T17:05:22.667 に答える
0

これを試して:

$http({
        url: "api/produto",
        method: "POST",
        data: product,
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    })
    .then(function(response) {
            // success
    }, 
    function(response) { // optional
            // failed
    });
于 2015-11-12T13:51:32.613 に答える
0

それを行う方法はありませんでした。

カスタム モデル バインダーを作成するか、新しい Web API 6 mvc で常に を使用し、frombodyjson による出荷を強制します。

少なくともそれが私のテストで行ったことです。jsonを送信して使用するだけで機能しfrombodyました。

ドキュメントは、実際に変更され、この新しい統合モデルの Web API 2 を MVC にバインドします。

于 2015-11-12T18:55:02.817 に答える