C# 使用Newtonsoft.Json反序列化

C# 使用Newtonsoft.Json反序列化,c#,json,asp.net-mvc-4,C#,Json,Asp.net Mvc 4,我有我的控制器,它可以发送一个json对象并再次接收相同的对象。 我的问题是AjaxSaveFoo创建了一个Foo对象,但我总是得到一个空对象。如何创建反序列化 /// <summary> /// Returns a foo /// </summary> /// <returns></returns> public JsonNetResult AjaxLoadFoo() { return new JsonNetResult {

我有我的控制器,它可以发送一个json对象并再次接收相同的对象。 我的问题是AjaxSaveFoo创建了一个Foo对象,但我总是得到一个空对象。如何创建反序列化

/// <summary>
/// Returns a foo
/// </summary>
/// <returns></returns>
public JsonNetResult AjaxLoadFoo()
{
    return new JsonNetResult
    {
       Data = new Foo()
    };
}

/// <summary>
/// Saves a foo
/// </summary>
/// <returns></returns>
public JsonNetResult AjaxSaveFoo(Foo foo) //who tries to deserialize this!!, its always empty
{

    return new JsonNetResult
    {
        Data = foo
    };

}
Foo当它被发送下来时..
{

提交时的Foo(POST)


您要传递的对象未正确转换为
Foo
对象

尝试更改签名以输入字符串,然后尝试反序列化:

public JsonNetResult AjaxSaveFoo(string json)
{
   var foo = JsonConvert.DeserializeObject<Foo>(json);
   return new JsonNetResult
   {
      Data = foo
   };
} 
public JsonNetResult AjaxSaveFoo(字符串json)
{
var foo=JsonConvert.DeserializeObject(json);
返回新的JsonNetResult
{
数据=foo
};
} 
我发现了错误


url应该是AjaxSaveFoo/而不是AjaxSaveFoo。这给了我一个来自服务器的301(添加/)但也导致客户端使用GET,因此无法填充数据..叹气

显示JS和C#中的Foo对象。它们的定义似乎不匹配。我发现了错误…url应该是AjaxSaveFoo/而不是AjaxSaveFoo。这给了我来自服务器的301(添加/)但也导致客户端使用GET,因此无法填充数据..*叹气*
"CustomerNumber": 2,
"CustomerStatus": "1"
}
{"CustomerNumber":2,"CustomerStatus":"1"}
public JsonNetResult AjaxSaveFoo(string json)
{
   var foo = JsonConvert.DeserializeObject<Foo>(json);
   return new JsonNetResult
   {
      Data = foo
   };
}