1

我编写了以下代码以将 JSon 数据发布到 Web Api 类

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 是 Model 类,包含 Id、Name、Category 和 Price 属性。

问题:- 在模型类中,我在 Id、Name 和其他属性上添加必需属性时,数据不会被发布并且服务器返回 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 post 的服务器端方法是一种更好的做法。

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

并遵循与 dbaseman 相同的操作

于 2012-09-26T06:49:17.820 回答