我编写了以下代码,将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数据。
答案 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相同的内容