Передать результат данных C # в переменную JavaScript - PullRequest
0 голосов
/ 05 июня 2018

Мне нужно передать результаты SQL снизу Javascript в ASP.Net?Я пытался объявить два поля в JS, но не могу сделать это правильно.Как получить результаты в JS?

     var Description = "<%=this.Description%>"
     var ApplicationSourceCount = "<%=this.ApplicationSourceCount%>"

Объявлены строки в C #

    public class ApplicantSourceData
    {
        public string Description { get; set; }
        public string ApplicantSourceCount { get; set; }
    }

C # WebMethod

[WebMethod]
    public List<ApplicantSourceData> GetApplicantSourceData(List<string> aData)
    {
        //SqlDataReader reader;
        List<ApplicantSourceData> GetApplicantSourceData = new List<ApplicantSourceData>();

        string connectionString = ConfigurationManager.ConnectionStrings["ATL2"].ConnectionString;
        string commandTextApplicantsByMonthCount = Properties.Queries.commandTextApplicantsByMonthCount;

        using (SqlConnection con = new SqlConnection(connectionString))
        {
            using (SqlCommand command = new SqlCommand(commandTextApplicantsByMonthCount))
            {

                command.CommandText = commandTextApplicantsByMonthCount;
                command.CommandType = CommandType.Text;
                command.Connection = con;
                con.Open();
                SqlDataReader reader = command.ExecuteReader();
                if (reader.HasRows)
                {
                    int counter = 0;
                    while (reader.Read())
                    {
                        ApplicantSourceData tsData = new ApplicantSourceData();
                        tsData.Description = reader["Description"].ToString();
                        tsData.ApplicantSourceCount = reader["ApplicantSourceCount"].ToString();
                        GetApplicantSourceData.Add(tsData);
                        counter++;
                    }
                }
            }
            return GetApplicantSourceData;
        }
    }

Я попробовал следующее, но это не

1 Ответ

0 голосов
/ 05 июня 2018

Вы должны вызывать свой WebMethod со стороны клиента (например, как запрос AJAX).Затем WebMethod должен вернуть клиенту ответ с запрошенными данными (например, в виде строки в формате JSON).

Существует несколько способов сделать это.Во-первых, используется AJAX.

Пример:

C #:

[WebMethod]
public static string someWebMethod(String data) {

    // your code here
    var returnData = /* some kind of data */
    JavaScriptSerializer json = new JavaScriptSerializer();
    return json.Serialize(returnData);

}

JS (для примера используется jQuery, но вы можете сделать это и в обычном JS):

$.ajax({
  type: "POST",
  url: "PageName.aspx/someWebMethod",
  data: "{"data": data}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(response) {
    // Do something with the response.
  }
});

Другой вариант - использовать PageMethods.Для этого вы можете вызвать метод из вашего JS по следующей схеме:

PageMethods.someWebMethod(data);

function onSucess(result) {
    console.log(result);
}

function onError(result) {
    console.log(result);
}

Я бы посоветовал немного подробнее изучить документацию по ASP.NET WebMethod.Кроме того, вот пара учебных пособий, которые могут помочь: Вызов ASP.NET WebMethod с использованием jQuery-AJAX и Вызов метода ASP.NET C # (веб-метод) с использованием JavaScript .

...