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

Posted

技术标签:

【中文标题】ASP.NET / JavaScript - Ajax 调用,如何?【英文标题】:ASP.NET / JavaScript - Ajax call, how to? 【发布时间】:2010-03-01 14:52:59 【问题描述】:

请保持温柔,因为我还是 Web 编程新手,而且对 Ajax 还很陌生!

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

实际上,我以前从未做过这样的事情,从谷歌搜索得知我需要使用 xmlHttpRequest,但我究竟如何让函数获取这个字符串?

如果有人有一些示例代码来说明这是如何工作的,那就太棒了。

【问题讨论】:

【参考方案1】:

执行此操作的最简单方法是将函数转换为 ASHX 文件,该文件将 JSON 写入 HTTP 响应。

然后您可以使用 XmlHttpRequest 调用它,尽管使用jQuery 调用它会更容易。

你可以像这样用 jQuery 调用它:

$.get("/YourFile.ashx", function(obj)  ... , "json");

【讨论】:

【参考方案2】:

如果您将 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 = ... ;

【讨论】:

webmethod 如果在页面内,则需要是静态的,但如果它在 web 服务中,则无需将其设为静态。

以上是关于ASP.NET / JavaScript - Ajax 调用,如何?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript、asp.net 和 Sql Server

ASP.NET 中的 Javascript 命名空间声明

asp.net调用javascript返回值

ASP.NET 服务器端 Javascript

ASP.NET 页面加载完成后运行 javascript 函数

ASP.NET 用户控件中的 Javascript 函数