2

同じタイトルの同様の質問がありますが、解決策は私の問題には有効ではありません。

次の JSON をシリアル化しようとしています。

{"Id":1,
 "Questions":
    [{"Id":"q-1-Q0001","Text":"Volume Too High"},
     {"Id":"q-1-Q0002","Text":"Volume Too Low"}],
 "Text":"My text."}

私のC#でこの構造を使用すると:

public class Issue
{
    public Issue() { Questions = new List<Question>(); }
    public string Id { get; set; }
    public List<Question> Questions { get; set; }
    public string Text { get; set; }
}

public class Question
{
    public string Id { get; set; }
    public string Text { get; set; }
}

上記の JSON を含む POST を JavaScript でこの C# 関数に送信します。

public JsonResult AddIssueToQueue(Issue issue)
{
    var id = issue.Id; // Set correctly
    var text = issue.Text; // Set correctly
    var q = issue.Questions; // NOT set correctly. Set to List of two empty Question items.
}

id と text は正しく設定されていますが、q は 2 つの空の Question オブジェクトを含む List に設定されています (Id と Text はそれぞれ null です)。

JSON の形式が正しくありませんか? Questions配列が正しく伝播しないのはなぜですか?

4

2 に答える 2

0

これは私の ajax 呼び出しであり、問​​題なく動作しています。質問リストを取得しています

   $.ajax({
                type: 'POST',
            contentType: 'application/json; charset=utf-8',
            data: "{'issue':{'Id':1,'Questions':[{'Id':'q-1-Q0001','Text':'Volume Too High'},{'Id':'q-1-Q0002','Text':'Volume Too Low'}],'Text':'My text.'}}" ,

            dataType: 'html',
            url: 'AddIssueToQueue',
            success: function (data) {
                if (data) {
                    //Do something 
                }
            }
        });

コードも共有できますか。

于 2011-08-07T05:28:19.377 に答える
0

これは単なる推測ですが、前述の rsbarro のように、JSON 構造には整数の ID があります。しかし、C# のプロキシ クラスは文字列を想定しています。型変換が混同されている可能性はありますか?

于 2011-08-07T04:29:35.077 に答える