Вызов функции javascript из глобального файла и возврат ее для добавления в html - PullRequest
0 голосов
/ 20 января 2019

enter image description here У меня есть глобальный файл JavaScript 'Global.js' с глобальным обработчиком 'GlobalHandler.ashx', то, что я пытаюсь сделать, это визуализировать некоторые данные в серверной части (внутри обработчика), а затем вернуть текстовые данные, используя context.Response.Write(MyString)

Вопрос в том, как добавить данные в мой HTML-элемент. Я посмотрел на ответ (200), и данные там есть, но я не знаю причину не добавлять свой текст в элемент HTML

Я пытался добавить их, как классическим способом success:function(data){ $(elementID).html(data);} Но это не работает

Here In Global.js

function GetProfession(elementID) {
$.ajax({
    url: "/Handlers/GlobalHandler.ashx",
    dataType: "JSON",
    contentType: "application/json;charset=utf-8",
    //responseType: ResponseType,
    data: {
        functionName: "GetProfession"
    },
    success: function (data) {
        return $("#" + elementID).html(data);
    }
});
}

Здесь, в MyPage.aspx

    $(document).ready(function () {
        GetProfession("Profession");
    });

ЗДЕСЬ В обработчике

 string functionName = context.Request["functionName"];
        GroupDAO GroupDAO = new GroupDAO();
        if (functionName.Equals("GetProfession"))
        {
            var ListOfGroups = GroupDAO.GetGroups();
            string Builder = "";
            foreach (var group in ListOfGroups)
            {
                Builder+="<option value='" + group.GroupID + "'>" + group.GroupName + "</option>";
            }
            context.Response.Write(Builder);
        }

Я ожидаю, что эти опции будут добавлены к элементу html «Профессия» но этого, к сожалению, не происходит

1 Ответ

0 голосов
/ 20 января 2019

Я нашел ответ, я не узнал логическую причину такого поведения, но данные не были в методе успеха, даже если код statuc был 200. на самом деле это было в ошибке: свойства ajax-запроса. что я сделал, это: вместо успешного добавления данных в элемент html. я сделал это в тексте ответа ,

Вот код, прежде чем не работает:

  function GetProfession(elementID) {
$.ajax({
    url: "/Handlers/GlobalHandler.ashx",
    dataType: "JSON",
    contentType: "application/json;charset=utf-8",
    //responseType: ResponseType,
    data: {
        functionName: "GetProfession"
    },
    success: function (data) {
        return $("#" + elementID).html(data);
    }
});
}

Вот тот, который работает

function GetProfession(elementID) {
    $.ajax({
        url: "/Handlers/GlobalHandler.ashx",
        dataType: "JSON",
        contentType: "text/html; charset=utf-8",
        //responseType: ResponseType,
        data: {
            functionName: "GetProfession"
        },
        success: function (data, fata, meta) {
        },
        error: function (err) {
            $("#Profession").html(err.responseText);
            //alert(err.responseText);
        }
    });
}
...