我正在调用传递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]属性
的情况下,我可以通过哪些方式使此绑定工作答案 0 :(得分:0)
从模型中删除[Serializable],它应该这样做。不确定原因,但当类被标记为Serializable时,它不起作用。