ajax 调用asp.net后台方法
这种做法有好几种,如调用xx.asxh 页面,或者直接调用xx.aspx也面,在page_Load中进行一些判断然后调用后面的其他方法,
或者你可以直接调用webservice;
今天我简单总结一中方法,前提是:net Framework 4.0以上的版本才支持滴呀(包括4.0),也就是说:2.0 和 3.0 都不支持滴呀
前端写法:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication3.WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <input type="button" value="ClientClick有参数" onclick="TestAjaxParam()"/> <input type="button" value="ClientClick2不带参数" onclick="TestAjax()"/> <asp:Button ID="Button1" runat="server" Text="Button" /> </div> </form> <script type="text/javascript" src="jq/jquery-1.9.1.js"></script> <script type="text/javascript"> //客户端控件 //带参数的 function TestAjaxParam(){ $.ajax({ type:"POST", url: "WebForm1.aspx/TestAjaxParam", data:'{Name:"jack"}', dataType:"text", contentType:"application/json; charset=utf-8", success:function (data){ alert(data); } }) } //不带参数的 function TestAjax(){ $.ajax({ type:"POST", url: "WebForm1.aspx/TestAjax", dataType:"text", contentType:"application/json; charset=utf-8", success:function (data){ alert(data); } }) } //服务端控件 //"Default.aspx/Test", //"Default.aspx/TestAjax", $("#Button1").bind("click",function (){ $.ajax({ type:"post", url: "WebForm1.aspx/TestAjax", contentType:"application/json; charset=utf-8", dataType:"text", success:function (data){ alert(data); } }); //禁止按钮的提交 return false; }) </script> </body> </html>
后端方法
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication3 { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } public static string showString() { System.Threading.Thread.Sleep(5000); return "this method come from codeBind"; } public static string Test() { return "Test"; } //有参数 [System.Web.Services.WebMethod] public static string TestAjaxParam(string Name) { System.Threading.Thread.Sleep(500); return "this method come from codeBind" + Name; } //无参数 [System.Web.Services.WebMethod] public static string TestAjax() { System.Threading.Thread.Sleep(500); return "this method come from behide"; } } }