2013-09-01 32 views
0

我想通过jquery.ajax从后面的代码调用方法...但没有任何反应,没有错误的只是methood没有被调用。
也许重要的是要注意我使用DotNetNuke。
jQuery的(文件)。就绪(函数(){Jquery AJAX不会调用方法后面的代码

jQuery(window).scroll(function() { 
     if (jQuery(window).scrollTop() == jQuery(document).height() - jQuery(window).height()) { 
      InfiniteScroll(); 
     } 
    }); 

function InfiniteScroll() { 
     jQuery.ajax({ 
      type: "POST", 
      url: "LoadItemsHandler.aspx/GetData", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (data) { 
       if (data != "") { 
        alert('comething happened! :)');      
       } 
      } 
     }) 
    }; 

我试图处理方法添加到的.ascx的.aspx但没有工作:

[WebMethod] 
     public static string GetData() 
     { 
      return "<div><h2>I am comming in peace from code behind.</h2><p>Lorem ipsum dolor sit amet ... :)</p></div>"; 
... 

我试图把alert()放在InfiniteScroll(),它在滚动时被调用,但是后台方法...什么也没有:(



更新1

public string Test(string input) 
{ 
    var serializer = new JavaScriptSerializer(); 
    return serializer.Serialize(new { Name = input }); 
} 
public static string GetData() 
     { 
      string json = Test("Mike"); 
      return json; 
} 

我也得到:

Error:SyntaxError: JSON.parse: unexpected character 



更新2

好吧我知道了
从我后面的代码返回:

var serializer = new JavaScriptSerializer(); 
      return serializer.Serialize(new { NewTotal = "777", OfType = "love" }); 

在Ajax调用成功,我有:

success: function (data) { 
       if (data != "") { 
        alert(data.d); 
... 

现在这本以下数据:

{"NewTotal":"777", "OfType":"love"} 

而现在我唯一的问题是如何获得NewTotalOfType值,因为当我使用data.NewTotal时,我得到undefined

+0

你在萤火虫看到了什么? –

+0

当我滚动萤火虫显示这个: 'POST http://dnn7site/Demos/LoadItemsHandler.aspx/GetData 200 OK \t 329ms'。 – 1110

+0

而且我添加了错误日志否,我得到:'错误:SyntaxError:JSON.parse:unexpected character' – 1110

回答

2

您不需要结果转换为JSON,它是汽车。序列化到JSON

[WebMethod()] 
    public static object GetData() 
    { 
     return (new { NewTotal = "777", OfType = "love" }); 
    } 

在JS,请参阅newTotal这样

data.d.NewTotal 
0

那么,首先,在UserControl中调用Page方法将不起作用,因此应该在aspx页面中定义它们。

其次,检查萤火虫中的错误。

此外,请确保您从同一页面呼叫。

第三,使用web服务(*的.asmx)

+0

为什么我应该使用web服务(asmx),当我可以使用aspx?有什么好处? – 1110

+0

好处是.aspx用于呈现网页,HTML/CSS/Javascript是.aspx对客户端的标准响应请求。 Web服务通常用于以XML或JSON格式向客户端回复数据。在页面后面使用aspx代码来公开调用公共Web方法并不常见或最佳做法。这是一个Web服务的用途。设置和漫游Web服务非常简单,并且.ASPX可以通过将其放入一个方法来使用完全相同的逻辑 –

0

可以使用库using Newtonsoft.Json;

JsonConvert.SerializeObject(Request["paramater"]) 
相关问题