首页 > 解决方案 > 从 javascript 调用页面方法的问题

问题描述

我以前没有用过这个,所以我可能遗漏了一些东西,这甚至可能吗?

 function myFunc(obj) {
        $(document).ready(function () {

            $.ajax({
                type: "POST",
                url: "CMSWebParts_PSS_Test.aspx/CallMe",
                data: obj,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                }
            });
        });
    }

和.cs:

    public partial class CMSWebParts_PSS_Test : CMSAbstractWebPart
    { ...
    [WebMethod]
        public static string CallMe(string data)
        {
           return card;
        }...
    }

我不断收到 404。尝试使用 PageMethods 但仍然得到相同的结果。

标签: ajaxwebformspagemethods

解决方案


使您的数据成为字符串

data: JSON.stringify(obj),

msg是一个包装器。请求的数据被放入一个属性 -> d

success: function (msg) {
    alert(msg.d):
}

另外,调用您的函数myFunc 使用$(document).ready.


更新:尝试将成功部分移到初始调用之外,将名称更改为“完成”。

$.ajax({
    type: "POST",
    url: "CMSWebParts_PSS_Test.aspx/CallMe",
    data: JSON.stringify(obj),
    contentType: "application/json; charset=utf-8",
    dataType: "json"        
}).done(function (msg) {
    alert(msg.d);
)}.fail(function() {
   //
});

推荐阅读