2012-03-08 140 views
1

這是我第一次在ASP.NET中使用AJAX,所以請允許m繩索。ASP.NET AJAX在JSON指定時返回XML

我有,我想retuen JSON字符串一個簡單的AJAX請求,但ASP.NET保持格式化JSON字符串作爲XML

這裏是我的代碼

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public string GetModels() 
{ 
    string response; 

    using (var context = new myDataModel()) 
    { 
    var m = from model in context.ListModels select model; 
    var serializer = new JavaScriptSerializer(); 
    response = serializer.Serialize(m); 
    } 

    return response; 
} 

這被稱爲但返回包含我的JSON字符串真糊塗

回答

3

這是我從使用ASP.NET

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public void GetJSON() 
    { 

     DataTable dtMarkers = new DataTable(); 
     dtMarkers.Load(<<STORED PROCEDURE>>.GetReader()); 

     string[][] myArray = new string[dtMarkers.Rows.Count][]; 
     int i = 0; 
     foreach (DataRow marker in dtMarkers.Rows) 
     { 
      myArray[i] = new string[] { marker["ID"].ToString(), marker["Title"].ToString(), marker["Blurb"].ToString(), marker["Url"].ToString(), marker["LongLatPoint"].ToString() }; 
      i++; 
     } 

     JavaScriptSerializer js = new JavaScriptSerializer(); 
     string strJSON = js.Serialize(myArray); 
     Context.Response.Clear(); 
     Context.Response.ContentType = "application/json"; 
     Context.Response.Flush(); 
     Context.Response.Write(strJSON); 

    } 

這個特殊的例子,從數據庫中讀取的GoogleMaps指針和它們返回到ASP.NET頁面顯示谷歌地圖的實例的web服務返回JSON方法。

0

嘗試定義XML節點是這樣的:

public JsonResult GetModels() 
{ 
    //......... 

    return new JsonResult() { Data = new { result=response } }; 
} 
+1

他沒有使用ASP MVC – 2012-03-08 09:43:46

+0

oops,對不起,忽略這個 – 2012-03-08 09:52:02

+0

感謝Bjarki和simon,我調試了這個方法並且看到JavaScriptSerializer正在返回一個json字符串,所以我認爲它是webmethod添加的XML數據? – Deviland 2012-03-08 10:24:20