使用ajax从webmethod ASP.net检索数据

使用ajax从webmethod ASP.net检索数据,asp.net,ajax,json,Asp.net,Ajax,Json,我知道我的问题很基本,但不知为什么我的代码不起作用。 我正在尝试更新文本框文本更改上的标签值。下面是我在我的aspx页面上编写的javascript代码示例 function UpdateDescription(ControlID) {//debugger; ControlID = "ctl00_CP_" + ControlID; UPCCode = document.getElementById(ControlID).value; //alert(UPCCode);

我知道我的问题很基本,但不知为什么我的代码不起作用。 我正在尝试更新文本框文本更改上的标签值。下面是我在我的aspx页面上编写的javascript代码示例

function UpdateDescription(ControlID) {//debugger;
    ControlID = "ctl00_CP_" + ControlID;
    UPCCode = document.getElementById(ControlID).value;
    //alert(UPCCode);
    $.ajax({ type: "POST",                    
        url:"ProductPhotoRequisitions.aspx/GetUPCJSon",
        //data: "{UPC:" + UPCCode + "}",
        data: "UPC=" + UPCCode,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {alert(data.d);} 
    }); 
}
我在同一页的codebehind中编写webmethod,但不知怎么的,这个函数没有被调用

[WebMethod]
public string GetUPCJSon(String UPC) 
{ 
    //code to fetch label value
}

WebMethod必须声明为静态,并且必须用[WebMethod]属性修饰它们

[WebMethod]
public static string GetUPCJSon(String UPC) 
{ 
   //code to fetch label value
}
因为内容类型json将参数作为jsonobject发送

$.ajax({ type: "POST",                    
        url:"ProductPhotoRequisitions.aspx/GetUPCJSon",
        data: "{UPC:'" + UPCCode + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {alert(data.d);} 
    }); 

如果您的javascript是正常的,并且如果您唯一的问题是没有调用该方法,那么您应该尝试使用该方法,该方法应该是静态的

 [WebMethod]
 public static string GetUPCJSon(String UPC) 
 { 
    //code to fetch label value
 }

谢谢你的回复。静态是一个问题,但主要问题是没有为参数提供单引号。应该是的

 $.ajax({ type: "POST",                    
        url:"ProductPhotoRequisitions.aspx/GetUPCJSon",
        data: "{'UPC':'" + UPCCode + "'}",
                contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {alert(data.d);} 
    }); 

另外,请检查本教程。是否可以为GetUPCJSon web方法添加代码?