【发布时间】:2014-09-11 14:49:56
【问题描述】:
我正在调用传递 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 类中删除 [Serializable] 属性,它工作正常。我无法删除此属性,因为此对象存储在基于 SQL 的会话中。在不删除 [Serializable] 属性的情况下,我可以通过哪些方式使此绑定工作
【问题讨论】:
标签: asp.net-web-api jsonserializer