我试图通过jquery.ajax从代码后面调用方法...但没有任何反应,没有错误只是没有调用。 也许重要的是要注意我使用DotNetNuke jQuery(document).ready(function(){
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"}
现在我唯一的问题是如何获得NewTotal
或OfType
值,因为当我使用data.NewTotal
时,我得到undefined
?
答案 0 :(得分:2)
您不需要将结果转换为JSON,它是自动的。序列化为JSON
[WebMethod()]
public static object GetData()
{
return (new { NewTotal = "777", OfType = "love" });
}
在JS上,请参阅newTotal,如下所示
data.d.NewTotal
答案 1 :(得分:0)
首先,在UserControl中调用Page方法不起作用,因此应该在aspx页面中定义它们。
其次,检查萤火虫中的错误。
另外,请确保您从同一页面打电话。
第三,使用网络服务(* .asmx)
答案 2 :(得分:0)
可以使用库using Newtonsoft.Json;
JsonConvert.SerializeObject(Request["paramater"])