0

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
 }

モデル バインディングは、次の 3 つの文字列プロパティに対して機能しています。

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 に答える