Связывание моделей JavaScriptSerializer и ASP.Net MVC дает разные результаты

Я наблюдаю проблему десериализации JSON, которую не могу объяснить или исправить.

Код

public class Model
{
    public List<ItemModel> items { get; set; }
}
public class ItemModel
{

    public int sid { get; set; }
    public string name { get; set; }
    public DataModel data { get; set; }
    public List<ItemModel> items { get; set; }
}

public class DataModel
{
    public double? d1 { get; set; }
    public double? d2 { get; set; }
    public double? d3 { get; set; }
}

public ActionResult Save(int id, Model model) {
}

Данные

{'items': [{'sid': 3157, 'name': 'имя', 'items': [{'sid': 3158, 'name': ' имя ребенка ',' данные ': {' d1 ': 2,' d2 ': null,' d3 ': 2}}]}]}

Модульный тест - прохождение

var jss = new JavaScriptSerializer();
var m = jss.Deserialize<Model>(json);
Assert.Equal(2, m.items.First().items.First().data.d1);

Проблема

тот же JSON строка, отправленная в действие Сохранить , не десериализуется таким же образом, особенно значения D1, D2 и D3 устанавливаются в NULL. Всегда.

Что здесь происходит и как это исправить?

8
задан Scott Weinstein 22 January 2012 в 20:57
поделиться