1

JSonデータをWebApiクラスに投稿するために次のコードを記述しました

var product = '{Id: 2012, Name: 'test', Category: 'My Category', Price: 99.5}'

$.ajax({
url: 'api/products',
type: 'POST',
data: JSON.stringify(product),
dataType: 'json',
contentType: "application/json",
success: function (data) {
}
});

サーバー側では、次のコードでPostメソッドを定義しました

  public HttpResponseMessage Post(Product p)
    {
       //some code to manipulate p and return response 
       return response;
    }

Productは、Id、Name、Category、Price属性を含むModelクラスです。

問題:-モデルクラスで、ID、名前、およびその他のプロパティに必須の属性を追加すると、データが投稿されず、サーバーが500エラーを返します。メッセージIDが必要ですか?

問題の考えられる理由、つまり、属性を持つプロパティを持つモデルのJsonデータを投稿する方法は何でしょうか。

4

2 に答える 2

1

製品データを二重に文字列化していますが、文字列化するべきではありません。JQuery のajaxメソッドは、データとして JSON オブジェクトを受け取ります。

var product = {Id: 2012, Name: 'test', Category: 'My Category', Price: 99.5};

$.ajax({
    url: 'api/products',
    type: 'POST',
    data: product,
    dataType: 'json',
    contentType: "application/json",
    success: function (data) {
    }
});
于 2012-09-26T06:05:15.457 に答える
0

HttpPost 属性を使用して jquery 投稿を受け入れるサーバー側メソッドを装飾することをお勧めします。

[HttpPost]
  public HttpResponseMessage Post(Product p)
{
   //some code to manipulate p and return response 
   return response;
}

dbaseman と同じ手順に従います

于 2012-09-26T06:49:17.820 に答える