JSON序列化Web API参数

时间:2014-09-11 14:49:57

标签: asp.net-web-api jsonserializer

我正在调用传递JSON参数的Web API Post Action。 我的自定义模型如下:

[Serializable]
public class Model
{
    public int? prop1 {get; set;}
    public bool prop2 {get; set;} 
}

Web API是:

public void Post(Model model)
{
    if (model != null && model.prop1 ==5 )
{
 // Do something
}
}

我从客户端传递的JSON是:

var value = {
prop1: 4,
prop2: true
};

来自客户端的AJAX调用是:

.ajax('/api/MyController', {
type: "POST",
contentType: "application/json",
data: JSON.stringify(value),
success:function(data){
alert(Success);
}
});

但是,模型属性的绑定在WebAPI操作中永远不会起作用。 “model”参数返回实例化(它不是null),但是里面的所有属性都是默认值,而不是我从客户端传递的值。如果我从Model类中删除[Serializable]属性,它可以正常工作。我无法删除此属性,因为此对象存储在基于SQL的会话中。在不删除[Serializable]属性

的情况下,我可以通过哪些方式使此绑定工作

1 个答案:

答案 0 :(得分:0)

从模型中删除[Serializable],它应该这样做。不确定原因,但当类被标记为Serializable时,它不起作用。