6

以下に示すように、C#.netメソッドがあります

 public string jsonTest()
        {
            List<string> list = new List<string>();
            list.Add("aa");
            list.Add("bb");
            list.Add("cc");
            string output = JsonConvert.SerializeObject(list);
            return output;          
        }

ここでは、JsonConvert.SerializeObject を使用して Json オブジェクトを作成していますが、文字列を取得しています (戻り値の型が文字列であるため)。

MVC でできることのように、戻り値の型 JsonResult (またはそのようなもの) を使用して、以下のようにすることはできますか?

  return Json(new { data = list }, JsonRequestBehavior.AllowGet);

asp.netでJsonデータを作成することは可能ですか?

クライアント側では、ajax 呼び出しを使用して jsonTest() からデータを取得しています。

  $.ajax({
                type: 'GET',
                url: "test.aspx",  //In test.aspx pageload calling jsonTest()
                dataType: 'json',
                success: function (data) {
                    alert(data);
                },
                error: function (data) {
                    alert("In error");
                }

            });

dataType: 'json' を指定すると、エラー部分に移動します (ajax は json データを想定していますが、文字列を取得するため)。それが、サーバー側でjsonオブジェクトとして解析したい理由です。

4

4 に答える 4

1

ASP.NETの場合、

string output = JsonConvert.SerializeObject(list);
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(output);
Response.End();
于 2013-04-17T12:38:41.367 に答える
0

JSON オブジェクトと呼ばれるものはありません。SerializeObjectJSON は特定の規則に従う文字列値にすぎないため、このメソッドは文字列を返します。

JSON をブラウザーに返すために必要なことは、次のとおりです。

Response.ContentType = "application/json; charset=utf-8";
Response.Write(jsonTest());
Response.End();
于 2013-04-17T12:38:35.927 に答える
-3

Json は単なる文字列データです。その文字列がどのように解釈されるかです。したがって、文字列を返すという事実は正しいです。あなたはASP.Netに言及しました。ASP.Net Web フォームを使用していて、その JSON をフロント サイドに返す方法を探していますか?

于 2013-04-17T12:36:58.403 に答える