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 对象,从而更轻松地在客户端进行处理 (恕我直言)。
下面的示例是如果页面有一个名为GetData
的WebMethod
,但如果您创建一个服务,更改 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