使用jquery ajax时服务器端函数不起作用 函数ShowCurrentTime(){ $.ajax({ 类型:“POST”, url:“Default.aspx/jsonrep”, 数据:“{}”, contentType:“应用程序/json;字符集=utf-8”, 数据类型:“json”, async:true, cache:false, 成功:一旦成功, 故障:功能(响应){ 警报(response.d); } }); } 函数OnSuccess(响应){ 警报(response.d); }

使用jquery ajax时服务器端函数不起作用 函数ShowCurrentTime(){ $.ajax({ 类型:“POST”, url:“Default.aspx/jsonrep”, 数据:“{}”, contentType:“应用程序/json;字符集=utf-8”, 数据类型:“json”, async:true, cache:false, 成功:一旦成功, 故障:功能(响应){ 警报(response.d); } }); } 函数OnSuccess(响应){ 警报(response.d); },jquery,asp.net,json,Jquery,Asp.net,Json,代码文件代码是 <script src="jquery-1.3.2.min.js" type="text/javascript"></script> <script type = "text/javascript"> function ShowCurrentTime() { $.ajax({ type: "POST", url: "Default.aspx/jsonrep", data: "{}",

代码文件代码是

<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type = "text/javascript">
function ShowCurrentTime() {
    $.ajax({
        type: "POST",
        url: "Default.aspx/jsonrep",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: true,
        cache: false,
        success: OnSuccess,
        failure: function (response) {
            alert(response.d);
        }
    });
  }
  function OnSuccess(response) {
    alert(response.d);
  }
</script> 

<input id="btnGetTime" type="button" value="Show Current Time" 
       onclick = "ShowCurrentTime()" />
[System.Web.Services.WebMethod]
公共字符串jsonrep()
{
GetOrders();
var jsonSerialiser=新的JavaScriptSerializer();
var json=jsonSerialiser.Serialize(列表);
返回json.ToString();
}
公共列表GetOrders()
{
DataProp o=新的DataProp();

对于(int i=1;i您缺少此行中的
static
引用:

[System.Web.Services.WebMethod]
public string jsonrep()
{
    GetOrders();
    var jsonSerialiser = new JavaScriptSerializer();

    var json = jsonSerialiser.Serialize(list);

    return json.ToString();
}

public List<DataProp> GetOrders()
{
    DataProp o = new DataProp();

    for (int i = 1; i <= 8; i++)
    {
        o.Earning = 20000 * i;
        o.Number = 8 * i;
        list.Add(o);
    }

    return list;
}
换成

public string jsonrep()
.从链接:

静态方法只是与其包含类的任何实例解除关联的方法。更常见的替代方法是实例方法,其结果取决于所属类的特定实例的状态。从某种意义上说,静态方法是无状态的方法

因此,JS只理解静态方法,因为只有它们可以在没有类引用的情况下实例化


如果你想使用非静态的东西,我建议你使用
asmx
服务/
ashx
处理程序。

如果你使用母版页,你会遇到问题。在使用母版页时,我无法从代码隐藏页成功调用WebMethod。我最终创建了一个服务。
public static string jsonrep()