模型类上的数据属性未在Web Api中发布

时间:2012-09-26 06:00:30

标签: asp.net-mvc json asp.net-web-api

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

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;
    }

产品是Model类,包含Id,Name,Category和Price属性。

问题: - 在Model类中我在Id,Name和其他属性上添加Required属性时,数据不会发布,Server返回500错误,消息ID是必需的吗?

问题可能是什么原因,或者换言之,如何为具有属性属性的模型发布Json数据。

2 个答案:

答案 0 :(得分: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) {
    }
});

答案 1 :(得分:0)

更好的做法是修饰服务器端方法,该方法接受带有HttpPost属性的jquery帖子。

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

并遵循与dbaseman相同的内容