如何在asp.net webforms中使用ajax

有没有办法使用ajax我正在使用Jquery这个用asp.net webforms而不必遍历页面生命周期?

如果您正在使用jQuery,正如您所提到的,您可以使用jQuery直接调用Page Methods ,而不会产生MicrosoftAjax.js及其生成的服务代理的开销,以启用PageMethods.MethodName()语法。

给定一个名为MethodName PageName.aspx中的静态[WebMethod]修饰方法,这是一个如何在客户端调用它的示例:

 $.ajax({ type: "POST", url: "PageName.aspx/MethodName", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { // Do something interesting with msg.d here. } }); 

根据您要执行的操作,您可以使用Web方法或Http Handler。 Web方法可能更容易一些,只是服务器端静态函数,它们使用[WebMethod]属性进行修饰。

这是一个例子:

C#:

 [WebMethod] public static string SayHello(string name) { return "Hello " + name; } 

ASPX:

    

您可以使用页面方法,因为它们被调用。

它们本质上是Page上的方法,但声明为静态。

 public class MyPage : System.Web.UI.Page { [WebMethod] public static string Reverse(string message) { return message.Reverse(); } } 

然后可以从客户端脚本中使用它们:

 function reverseMyString(message) { // Magically generated code appears PageMethods.SendForm(message, OnSucceeded, OnFailed); } function OnSucceeded(result) { alert(result) } function OnFailed(error) { alert(error.get_message()) } 

与asmx Web服务相比,它们非常简洁,因为它们可以保持与特定页面构建的Web窗体function相同。

肯定有办法。 看看这个答案 。 该特定示例在后端使用MVC,但您可以使用基本ASP.NET进行类似操作 – 只需通过AJAX调用PageMethods / WebMethods即可 。

其中一个关键是声明一个带有WebMethod属性的静态方法。