jqueryajax:只执行页面加载方法,而不是预期的方法

jqueryajax:只执行页面加载方法,而不是预期的方法,jquery,asp.net,ajax,webforms,Jquery,Asp.net,Ajax,Webforms,我应该返回一个csv文件,所以我添加了这个方法,我将从客户端调用它。现在,这个方法返回一个简单的字符串 public partial class ResourceEdit_PriceSheet : xCI.Site.Web.BasePage { protected void Page_Load( object sender, EventArgs e ) { } [WebMethod] public string GenerateVendorPriceS

我应该返回一个csv文件,所以我添加了这个方法,我将从客户端调用它。现在,这个方法返回一个简单的字符串

public partial class ResourceEdit_PriceSheet : xCI.Site.Web.BasePage
{
    protected void Page_Load( object sender, EventArgs e )
    {
    }


    [WebMethod]
    public string GenerateVendorPriceSheet(int suppID)
    {
        return "Succes!!!";
    }

}
这就是ajax

function exportVendorPriceSheet() {
 var suppID = getParameterByName('SuppID');
 var url = '/ResourceEdit/ResourceEdit_PriceSheet.aspx/GenerateVendorPriceSheet';
 var id = { "suppID": suppID };
 $.ajax({
     type: "POST",
     url: url,
     data: id,
     dataType: "application/json",
     cache: false,
     success: function (result) {
         alert(result)
    }
  });
};
当我运行应用程序时,什么都没有发生。在执行加载页面旁边的断点时,断点未被击中。并且响应包含整个页面,而不是“Success!!!”

然而,我读过的所有帖子都说这就是如何从aspx页面调用方法。我错过什么了吗

谢谢你的帮助

====================

下面是一些标题

Request URL:http://localhost/ResourceEdit/ResourceEdit_PriceSheet.aspx/GenerateVendorPriceSheet
Request Method:POST
Status Code:200 OK
Request Headersview source

Accept:*/*
Accept-Encoding:gzip,deflate
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:11
Content-Type:application/x-www-form-urlencoded; charset=UTF-8

Form Data
suppID=2974

基于标题检查(Chrome开发工具):

  • 您正在发送
    内容类型:application/x-www-form-urlencoded;字符集=UTF-8
所以(
contentType
):


Hth….

Ajax调用js函数驻留在哪里?作为同一
.aspx
的一部分,还是在不同的外部.js文件中?将其更改为
var id JSON.stringify({“suppID”:suppID})帮助?在同一个aspx文件中,即
ResourceEdit\u PriceSheet.aspx
。让我试试。然后将url更改为
'ResourceEdit_PriceSheet.aspx/generateendorpricesheet'支持。你应该考虑切换,因为它是很好的支持(更简单!)梅森:谢谢你的建议,但是如果我能,我就不会遇到太多麻烦。这部分代码位于一个遗留文件夹中,我们没有对其进行太多修改。现在它抱怨没有这样的方法(错误500)。这就是我得到的错误:
未知的web方法generateEndorPriceSheet。参数名称:methodName
。将您的webmethod标记为
public static
有效。非常感谢你。d的含义是什么?
.d
-它是一种保护自己不执行可能有效的javascript(从某些webmethod或其他源返回)的方法。嗯。。。
$.ajax({
         type: 'POST',
         url: url,
         data: id,
         contentType: 'application/json; charset=utf-8',
         dataType: 'json'