【问题标题】:JSON Serialization of WebAPI parametersWebAPI 参数的 JSON 序列化
【发布时间】: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


【解决方案1】:

从你的模型中删除 [Serializable] 并且它应该这样做。不知道为什么,但是当类被标记为可序列化时它不起作用。

【讨论】:

  • 我从未添加过该属性,它对我来说很好。
猜你喜欢
  • 2016-08-31
  • 2019-12-13
  • 1970-01-01
  • 1970-01-01
  • 2020-07-11
  • 2015-11-29
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
相关资源
最近更新 更多