0

我知道我的问题非常基本,但不知何故我的代码不起作用。我正在尝试更新文本框文本更改的标签值。下面是我在我的 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);} 
    }); 
}

我正在同一页面的代码隐藏中编写 webmethod,但不知何故没有调用此函数。

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

3 回答 3

0

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);} 
    }); 
于 2012-05-12T13:21:27.960 回答
0

如果你的 javascript 没问题,如果你唯一的问题是方法没有被调用,你应该尝试使用它,方法应该是静态的

 [WebMethod]
 public static string GetUPCJSon(String UPC) 
 { 
    //code to fetch label value
 }
于 2012-05-12T13:22:39.463 回答
0

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

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