我是否需要使用 Web 服务来使用 JQuery 执行“Ajax”以获取 JSON 格式的数据?同事推荐我用一个“Httphandler”……最后想知道是不是不能直接调用DataAccessLayer中的一个方法,传给Ajax……
我迷路了,如果我真的需要一个 Web 服务来用 JQuery 做 Ajax,有人可以解释一下吗?只有一台服务器(没有远程服务器),所以我可能不需要网络服务吗?
您实际上并不需要单独的 Web 服务。您实际上可以在同一页面上执行 AJAX。我对此有点生疏,所以请耐心等待,但您要做的就是:
<asp:ToolkitScriptManager runat="server" EnablePageMethods="true"/>
[ScriptService]
属性添加到您的页面类声明[ScriptMethod]
为您要调用的方法添加一个属性。默认情况下,它以 JSON 格式传输,但您可以使用 XML 响应[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
[ScriptService]
public class MyPage : Page
{
[ScriptMethod]
public static string GetText() { return "Hello, world!"; }
}
<html>
<!-- jQuery scripts -->
<body>
<script language="javascript">
$.ready(function () {
var text = PageMethods.GetText();
$("#label1").value(text);
});
</script>
<form runat="server">
<asp:ToolkitScriptManager runat="server" EnablePageMethods="true"/>
<asp:Label runat="server" ID="label1"/>
</form>
</body>
</html>
不,你没有。你需要做的就是
您可以使用 AJAX 调用常规的 .aspx(我知道 asp.net 中的 HttpHandler)页面。但是在这种情况下,您正在做很多额外的工作(您必须停止页面执行的常规流程,确保您不返回一些垃圾,将响应转换为 JSON 等)同时 -webservice 不需要所有这些基础设施常规页面(在 asp.net 中)需要,并且不会在您的服务器上产生额外的负载。HttpHandler 也是如此。你只做你需要的,没有别的。