0

我正在将 JSON 对象发送到操作方法。客户端一切正常,JSON 对象看起来正确,但设置的唯一值是简单属性。List 上的计数始终为 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

4

2 回答 2

3

首先检查你的 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/

核实..

于 2012-04-20T09:15:50.620 回答
0

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

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>();
    }
}
于 2017-01-13T16:56:59.087 回答