ASP.NET AJAX возвращает XML, когда указан JSON - PullRequest
1 голос
/ 08 марта 2012

Я впервые использую AJAX с ASP.NET, поэтому, пожалуйста, разрешите мне немного веревки.

У меня есть простой запрос AJAX, который я хочу вернуть в строку JSON, но 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;
}

это называется, но возвращает XML-узел, содержащий мою строку JSON, действительно запутанную

Ответы [ 2 ]

3 голосов
/ 08 марта 2012

Это мой метод возврата JSON из веб-службы с использованием 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 для отображения на экземпляреКарты Google.

0 голосов
/ 08 марта 2012

Попробуйте определить это так:

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

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