我如何做一个ajax帖子并有一个主页webmethod处理它?

时间:2011-09-24 01:19:59

标签: asp.net ajax

我正在为现有(和大型)Web应用程序开发一组新页面,并且正在使它们比以前更加以HTML和JQuery为中心。例如,没有服务器控件,我没有使用ViewState - 一切都在标准HTML中完成。我创建了第一页,效果很好。它在ASPX代码隐藏类上有很多显式的ajax调用到静态方法来获取或存储数据,这些工作正常。

在我分支到其余页面之前,我将相当数量的页面放入Master页面,并将这些组件的回调放入Master页面代码隐藏中。但是,对母版页上的静态方法的任何函数调用都会失败。我可以只是将这些方法移动到ASMX Web服务页面,但现在我的好奇心被激发了,我想了解为什么对aspx页面中的方法的调用有效,但是调用主页面上定义的方法不要。

这是一个问题,为什么在页面上定义方法时,“SaveWeightData”的AJAX回调有效,但在母版页上定义方法时失败:

$.ajax({
      type: "POST",
url: "<%=PageName%>/SaveWeightData",
      data: "{'weightItem':" + JSON.stringify(newWeight) + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
                    alert("Success!");
         },
error: function (xhr, ajaxOptions, thrownError, request, error) {
                alert('xrs.status = ' + xhr.status + '\n' +
                'thrown error = ' + thrownError + '\n' +
                'xhr.statusText = ' + xhr.statusText + '\n' +
                'request = ' + request + '\n' +
                'error = ' + error);
    }
      })

谢谢!

1 个答案:

答案 0 :(得分:3)

主页在运行时在UserControl对象下变为PageUserControls无法托管WebMethods