Как читать список из WebMethod в AJAX обратный вызов - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть этот код на моей странице Default.aspx:

window.feed = function(callback) {
        var Data = JSON.stringify({ columnname: "colonna", inputVal: $("#<%=txtLastID.ClientID%>")[0].value });
        $.ajax({
        type: "POST",
        url: "Default.aspx/RefreshChartEcg",
        //data: '{name: "' + $("#<%=txtLastID.ClientID%>")[0].value + '" }',
        //data : '{lastID : "10"}',
        data : Data,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            /*var tick = {};
            tick.plot0 = response.d;
            tick.plot1 = parseInt(10 + 90 * Math.random(), 10);
            callback(JSON.stringify(tick));*/
            alert(response.d);
        },
        failure: function(response) {
            alert(response.d);
        }
    });

Это код webMethod:

[WebMethod]
        public static Array RefreshChartEcg(string columnname, string inputVal)
        {
            /**
             * qui devo recuperare il codice per recuperare le informazioni real time dal database
             * */
             int lastID=0;
                if (inputVal != "")
                    lastID = Int32.Parse(inputVal);
             Array list = getActivitiesExecution(lastID: lastID).ToArray();
            return list;
        }

Этот метод возвращает список объекта CARTELLA_CLINICA_VALORI_ECG.

Теперь, как я могу прочитать это значение из метода onSuccess функции AJAX?

1 Ответ

0 голосов
/ 18 сентября 2018

это в основном относится к стороне сервера, сначала

1), убедитесь, что объект CARTELLA_CLINICA_VALORI_ECG сериализуем в Json String.

2) определите, что веб-метод возвращает строку (сериализовано Json)

[WebMethod]
public static string RefreshChartEcg(string columnname, string inputVal)
{
     ....
     Array list = getActivitiesExecution(lastID: lastID).ToArray();
     var sRet = {YourSerilizationHelper}.Serialize(list);
     return sRet;
}

you need your own serializer to do this according to your requirements.

3) это помощник, который я создал для сериализации в объекты json.

public class JsonHelper
{

    public static string Serialize(Object data)
    {
        return Serialize(data,Encoding.UTF8);
    }
    public static string Serialize(Object data, Encoding encoding)
    {
        System.Runtime.Serialization.Json.DataContractJsonSerializer serializer  = new System.Runtime.Serialization.Json.DataContractJsonSerializer(data.GetType());
        using(System.IO.MemoryStream ms = new System.IO.MemoryStream())
        {
            serializer.WriteObject(ms, data);
            return encoding.GetString(ms.ToArray());
        }
    }


    public static Object Deserialize(Type t, string sJsonText)
    {
        return Deserialize(t,sJsonText , Encoding.UTF8);
    }
    public static Object Deserialize(Type t, string sJsonText,Encoding encoding)
    {

            byte[] byteArray = encoding.GetBytes(sJsonText);
            using (System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArray))
            {
                System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(t);
                return serializer.ReadObject(ms);
            }

    }
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...