Json 模型绑定器不适用于<T> MVC 3 Asp.Net 嵌套列表



我正在将JSON对象发送到操作方法。 一切都在客户端工作,JSON 对象看起来正确,但设置的唯一值是简单属性。 列表上的计数始终为 0。

下面是发送到服务器的 JSON 对象的示例。 我刚刚提醒了整个 JSON 字符串并将其粘贴到下面:

{"Tags":"
[{"Id":0,"Title":"Windows 8","TagType":"Generic"},{"Id":0,"Title":"Dreamweaver","TagType":"Generic"},{"Id":0,"Title":"Word","TagType":"Generic"}]",
"CurrentPage":"5",
"ItemsPerPage":"10",
"SearchPhrase":"blaha"}

下面是 C# 类:

public class SearchParams
{
    public List<Tag> Tags { get; set; }
    public string ItemsPerPage { get; set; }
    public string SearchPhrase { get; set; }
    public string CurrentPage { get; set; }
}
public class Tag
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string TagType { get; set; }
}

下面是操作方法:

 public JsonResult Search(SearchParams searchParams)
 {
    //Stuff happens here
 }

模型绑定适用于三个字符串属性:

ItemsPerPage == 10
SearchPhrase == "blaha"
CurrentPage == 5
Tag.Count == 0 ????  

这里应该有 3 个标签项目:(

我在这里错过了一些明显的东西吗?

BR

首先检查你的json..

{     "Tags": " [{"Id":0,"Title":"Windows 8","TagType":"Generic"},{"Id":0,"Title":"Dreamweaver","TagType":"Generic"},{"Id":0,"Title":"Word","TagType":"Generic"}]",     "CurrentPage": "5",     "ItemsPerPage": "10",     "SearchPhrase": "blaha" }

我通过 json 验证器对其进行了测试,您的 json 中存在一些错误。

    http://jsonlint.com/
http://jsonformatter.curiousconcept.com/

检查一下..

这很旧,但为了记录,创建泛型列表的默认构造函数是我所做的,它总是有效:

public class SearchParams
{
    public List<Tag> Tags { get; set; }
    public string ItemsPerPage { get; set; }
    public string SearchPhrase { get; set; }
    public string CurrentPage { get; set; }
    public SearchParams() {
        Tags = new List<Tag>();
    }
}

最新更新