以下に示すように、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オブジェクトとして解析したい理由です。