ASP.NET Ajax回應JSON格式

JSON格式資料在Ajax使用上比XML還多,那ASP.NET伺服器如何傳送JSON格式的資料呢?其實只是回傳「純文字」,但內容必須符合「JSON格式」,再交由前端(如jQuery)來處理即可,jQuery在傳送Ajax要求時會指定dataType="json"或$.getJSON(),所以它會知道你要傳送JSON格式的資料回來。

Ajax取得JSON資料
$(function(){}
$.getJSON("City.aspx",{show: true}, function(JSON){
  //根據傳回的JSON,建立
  var JSONOptions = '';
  for (var i = 0, len =JSON.length; i < len; i++) {
    JSONOptions += '' + JSON[i].optionDisplay + '';
  }
})

City.asp產生JSON回傳給
Response.ContentType = "text/html"
Response.CacheControl = "no-cache"
Response.AddHeader("Pragma", "no-cache")

' 依JSON格式組合出你的資料
Dim JSON AS String = ""
JSON = "[
{optionValue:1, optionDisplay: '基隆市'},{optionValue:2, optionDisplay: '台北市'},
{optionValue:3, optionDisplay: '新北市'},{optionValue:4, optionDisplay: '桃園縣'},
{optionValue:5, optionDisplay: '新竹市'},{optionValue:6, optionDisplay: '新竹縣'},
{optionValue:7, optionDisplay: '苗栗縣'},{optionValue:8, optionDisplay: '台中市'},
{optionValue:9, optionDisplay: '彰化縣'},{optionValue:10, optionDisplay: '南投縣'},
{optionValue:11, optionDisplay: '雲林縣'},{optionValue:12, optionDisplay: '嘉義市'},
{optionValue:13, optionDisplay: '嘉義縣'},{optionValue:14, optionDisplay: '台南市'},
{optionValue:15, optionDisplay: '高雄市'},{optionValue:16, optionDisplay: '屏東縣'},
{optionValue:17, optionDisplay: '台東縣'},{optionValue:18, optionDisplay: '花蓮縣'},
{optionValue:19, optionDisplay: '宜蘭縣'},{optionValue: 20, optionDisplay: '澎湖縣'},
{optionValue:21, optionDisplay: '金門縣'},{optionValue: 20, optionDisplay: '連江縣'}]"

' 回應給前端
Response.Write(JSON)

Reference:

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。