JSON反序列化System.Web.Mvc.SelectList

时间:2014-08-07 18:14:53

标签: c# asp.net-mvc json serialization

我遇到了在对象内部反序列化SelectList的问题。我的课程设置如下:

public class DropDownControl
{
    public string Type
    {
        get { return "ddl"; }
    }
    public SelectList Values { get; set; }
}

我创建的对象只是

var myControl = new DropDownControl()
{
    Values = new SelectList(
        new List<SelectListItem>
        {
            new SelectListItem {Value = "1", Text = "A"},
            new SelectListItem {Value = "2", Text = "B"},
            new SelectListItem {Value = "3", Text = "C"},
        }, "Value", "Text", "1"
    )
}

我收到了错误

  

无法创建和填充列表类型System.Web.Mvc.SelectList。

致电

JsonConvert.DeserializeObject<List<Control>>(myControl, _settings);

当然必须有一些方法来序列化/反序列化SelectList

1 个答案:

答案 0 :(得分:1)

因为SelectList没有默认(即无参数)构造函数,所以您需要编写自定义转换器,以便JSON.NET知道如何实例化它。 This可能会帮助您了解如何做到这一点。