【问题标题】:Calling a javascript function from a global file and return it to append to html从全局文件调用 javascript 函数并将其返回以附加到 html
【发布时间】:2019-01-19 21:00:32
【问题描述】:

我有一个带有全局处理程序“GlobalHandler.ashx”的全局javascript文件“Global.js”, 我想做的是在后端(处理程序内部)呈现一些数据,而不是使用context.Response.Write(MyString)返回文本数据

问题是如何将数据附加到我的 html 元素。 我查看了响应(200)并且数据在那里,但我不知道没有将我的文本附加到 html 元素中的原因

我尝试像经典方式 success:function(data){ $(elementID).html(data);} 那样附加它们 但这不起作用

在 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 元素 'Profession' 但不幸的是它没有发生

【问题讨论】:

    标签: javascript asp.net json generics handler


    【解决方案1】:

    我找到了答案,我不知道这种行为的逻辑原因, 但即使状态码为 200 ,数据也不在成功方法中。 事实上它在错误中:ajax request 的属性。 我所做的是: 而不是将数据成功附加到 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);
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      • 2013-07-12
      • 2014-04-12
      • 1970-01-01
      相关资源
      最近更新 更多