【问题标题】:JSON Deserialize System.Web.Mvc.SelectListJSON 反序列化 System.Web.Mvc.SelectList
【发布时间】:2014-08-07 18:14:53
【问题描述】:

我在反序列化对象内的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

【问题讨论】:

  • JSON和序列化在哪里进入这个问题?
  • 我在调用JsonConvert.DeserializeObject&lt;List&lt;Control&gt;&gt;(json, _settings)时似乎遇到了这个错误
  • 你找到解决方案了吗?

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多