ASP.NET/JavaScript - Ajax调用,如何?

问题描述:

请温和一点,因为我还不熟悉网络编程和对Ajax非常陌生!ASP.NET/JavaScript - Ajax调用,如何?

我创建了一个C#函数,它从mssql数据库中提取数据,将其格式化为一个json字符串并将其返回。现在我需要通过与C#代码文件相关的aspx页面从我的javascript(jQuery)滑块进行调用。

我实际上从来没有做过这样的事情,从我可以告诉谷歌搜索我需要使用xmlHttpRequest,但我究竟如何使该函数得到这个字符串?

如果某人有一些示例代码展示了这个工作原理,那将会非常棒。

如果标记C#函数作为[的WebMethod]或使ASP.NET web服务的一部分它是用jQuery相对容易。这两种技术都可以很容易地将响应自动转换为ASP.NET的JSON对象,这使得客户端的处理更加容易(恕我直言)。

下面的例子是如果页面有一个名为GetDataWebMethod,但是如果你创建一个服务,那么改变这个URL是微不足道的。

$.ajax({ url: "somepage.aspx/GetData", 
     method: "POST", // post is safer, but could also be GET 
     data: {}, // any data (as a JSON object) you want to pass to the method 
     success: function() { alert('We did it!'); } 
}); 

在服务器上:

[WebMethod] 
public static object GetData() { 
    // query the data... 
    // return as an anonymous object, which ASP.NET converts to JSON 
    return new { result = ... }; 
} 
+0

如果webmethod在页面内部,它需要是静态的,但如果它在web服务中不需要使其静态。 – 2010-03-01 15:02:31

+0

伟大的提示!非常感谢 :] – cc0 2010-03-01 15:23:14

最简单的方法是将您的函数转换为将JSON写入HTTP响应的ASHX文件。

然后,您可以使用XmlHttpRequest调用它,但使用jQuery可以更简单地调用它。

您可以用jQuery这样调用:

$.get("/YourFile.ashx", function(obj) { ... }, "json"); 
+0

我会考虑的时候了,谢谢! :] – cc0 2010-03-01 15:24:24