Есть две проблемы с кодом, который вы упомянули -
1.В веб-методе вы используете следующую строку, поэтому вы ничего не возвращаете клиентскому вызову в ajax.
Context.Response.Write (js.Serialize (listMsg));
Таким образом, вам нужно изменить определение метода, чтобы он возвращал строку и возвращал ответ, как показано ниже:
[WebMethod(Description = "Description")]
[System.Web.Script.Services.ScriptMethod(UseHttpGet = true, ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
public string GetAllMessages()
{
List<Messages> listMsg = new List<Messages>();
DataTable dtMsg = clSQLHelper.PGSQLExecuteReader("get_all_messages", new List<NpgsqlParameter>(), "Messages");
if (dtMsg != null && dtMsg.Rows.Count > 0)
{
foreach (DataRow dr in dtMsg.Rows)
{
Messages Msg = new Messages();
Msg.ID = Convert.ToInt32(dr["auto_id"]);
Msg.Email = dr["email_id"].ToString();
Msg.Email = dr["message"].ToString();
Msg.TimeStamp = Convert.ToDateTime(dr["created_on"], new CultureInfo("en-IN"));
listMsg.Add(Msg);
}
}
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Serialize(listMsg);
}
2.Вы не сообщаете веб-методу ASMX, как к нему можно получить доступ
Поскольку вы вызываете метод GET в asmx, вам нужно добавить строку ниже в верхней части веб-метода
[System.Web.Script.Services.ScriptMethod (UseHttpGet = true, ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
Важность вышеуказанной строки -
Этот атрибут используется для указания информации для методов, которые могут быть вызваны из клиентского скрипта.Атрибут позволяет указать, какой HTTP-глагол (GET или POST) можно использовать для вызова метода.Он также позволяет указать, форматируется ли ответ с помощью нотации объектов JavaScript (JSON) или XML.
Ниже приведены подробные сведения о других атрибутах -
UseHttpGet
Указывает, будет ли метод вызываться с помощью команды HTTP GET.По умолчанию установлено значение false.
ResponseFormat
Указывает, будет ли ответ сериализован как JSON или как XML.По умолчанию это Json.Свойство ResponseFormat полезно для указания XML в качестве возвращаемого типа, когда метод возвращает объект XmlDocument или XmlElement.
Дополнительные сведения см. В этом https://docs.microsoft.com/en-us/dotnet/api/system.web.script.services.scriptmethodattribute?view=netframework-4.7.2