jQuery-AJAX调用ASP.NET页面方法。 如何将值返回jQuery?

如果我使用jQuery AJAX来调用特定的ASP.NET页面方法如何让该方法将值返回给调用它的AJAX方法?

更新

我的情况是我有一个现有的Web应用程序,有许多现有的方法。 我希望能够使用jQuery来执行其中一些方法,然后使用结果更新UI。 我的任务是远离ASP.NET AJAX并坚持使用jQuery。 管理层关注Microsoft的ASP.NET AJAX的持续开发和支持。 我同意他们。

您可以通过这种方式使用JQuery和页面方法: http : //encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/

成功回调包含带有返回数据的参数。

HTH。

皮肤猫有两种方法(我很熟悉)。

  1. 涉及Web方法和脚本管理器的“.Net方式”(参见此处: http : //geekswithblogs.net/frankw/archive/2008/03/13/asp.net-ajax-callbacks-to-web-methods -in-aspx-pages.aspx )。

  2. “旧Skool方式”涉及通过确定所谓的内容简单地写出响应。 通常你会使用像MVC这样的框架,所以转到http://www.MyWebsite.com/Object/Method/Id可以映射回Object.Method(id)。

你可以在没有像MVC这样的框架的情况下做到这一点,但它会使事情变得更加困难,如果你走这条路,你应该真正使用ASP.Net处理程序而不是实际页面(因为你不需要Aspx开销) 。 这是一个Ashx文件。

使用纯ASP.NET(这里不讨论WCF)我会使用处理程序(ASHX)文件,并使用JSON作为交换格式。 我不会深入了解JSON的细节( 是一个不错的开始),但是这个想法是服务器上的一个轻量级处理程序,它生成json文本并将其返回给客户端,然后客户端可以在javascript中轻松使用该结构。

这显然是一个简化的示例,但要点是JSON可以是从服务器驱动的数据,并且很容易被客户端上的javascript使用。

服务器:

<%@ WebHandler Language="C#" Class="Handler" %> using System; using System.Web; public class Handler : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/json"; context.Response.WriteFile("~/myData.json"); } public bool IsReusable { get { return false; } } } 

客户:

 myData = (function () { var json = null; $.ajax({ 'async': false, 'global': false, 'url': "handler.ashx", 'dataType': "json", 'success': function (data) { // this code is called when the // data is returned from the server json = data; } }); return json; } )(); alert(myData.MyArray[0].MyProperty);