下载地址:
http://www.codeplex.com/Project/FileDownload.aspx?ProjectName=AjaxPro&DownloadId=2953
首先,添加对AjaxPro.2.dll的引用(对于.NET Framework 1.1 添加AjaxPro.dll)
然后,添加配置文件web.config,添加如下几行:
1 <?xml version="1.0" encoding="utf-8"?> E,^v;p2~*Z0@{0 2 <configuration> nD/b[0]H!k0 3 <appSettings/> N!} yzX c:w0`7C0 4 <connectionStrings/> 博客.宿迁~n&U6]Q:nv8n 5 <system.web> $]:b I a`NU0 6 <httpHandlers>Dp%J/vR9}0 7 <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>博客.宿迁N G;OJ:h+D;[ 8 </httpHandlers>博客.宿迁:_9h(RF }]n'R 9 [ ] _w {#^Qa G~+c6IJ i010 </system.web> iW:o8IZ `^011 </configuration> F;h Y"K7s}#Xw l012
意思是所有的ajaxpro/*.ashx请求都由Ajax.PageHandlerFactory处理,而不是由默认的System.Web.UI.PageHandlerFactory处理程序工厂来处理。博客.宿迁G(B Sg2zr ~%| _博客.宿迁4X.eG_T buq'}${7]pV0B){O+m?0
现在我们写个AjaxMethod服务器端方法,他和普通的服务器方法唯一不同的地方就是他必须要在方法的上面添加个[AjaxPro.AjaxMethod],代码如下:
1 [AjaxPro.AjaxMethod]*b"t%b:`2h0 2 public int AddTwo( int firstInt, int secondInt)+W-vm-GN j8A#@GV0 3 {J1Q+z3k"L!Q9B,l04 return firstInt + secondInt;博客.宿迁] AM/?:j+}_d3HU5 }
要想在客户端使用Javascrīpt调用.NET方法,你还必须注册这些方法:
1 protected void Page_Load(object sender, EventArgs e) ^D-S)@5Jv3J,t7z02 { 博客.宿迁~qKb2I 3 AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default)); 博客.宿迁.q-n$EJ `jf;k/itw 4 }
最后,我们再写客户端脚本来调用服务器方法(代码里有详细的注释)。
以下是前台Default.aspx代码:
1 <% @ Page Language = " C# " AutoEventWireup = " true " CodeFile = " Default.aspx.cs " Inherits = " _Default " %> 博客.宿迁(o2V2Vj4f 2 博客.宿迁 h&`q|1n[5Q 3 <! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " > 博客.宿迁7o*RFw6},U+bM a 4 < html xmlns = " http://www.w3.org/1999/xhtml " > 博客.宿迁:e.hmui b 5 < head id = " Head1 " runat = " server " > ?~c9Q W6nP0 6 < title > Untitled Page </ title > 博客.宿迁&L{-_8S9t*o[*}n 7 </ head > lB:Pra:a0 8 < body > 博客.宿迁SBl$[f(m |!p,y^ 9 < form id = " form1 " runat = " server " > 博客.宿迁}"B0`9r8V4S { 10 < div > .R4r0@;m1mi:~(R,B0 11 < input id = " Text1 " type = " text " onchange = " add() " /> /O8Y3T h4n7x,h0 12 + "R?d!STx Ql0 13 < input id = " Text2 " type = " text " onchange = " add() " /> 博客.宿迁n5Hb3AB,Abv0AM1NP} 14 = ;F ug%u4l0 15 < span id = " result " ></ span > 博客.宿迁&e#P6ruIE'y 16 </ div > (d"L+{'_8}J9]6y0 17 </ form > 博客.宿迁nm)g]/3F r$j f 18 博客.宿迁 D.We t,b#{'I#] 19 < scrīpt type = " text/javascrīpt " > 博客.宿迁3]M-~$Q}F d/lbA/K 20 function add()博客.宿迁7PB9`m3hqIO{h*o 21 {博客.宿迁Jj@#{us%@ z*QcA22 var a=document.getElementById('Text1').value;HF,B&{|+E)CB x:m023 var b=document.getElementById('Text2').value;博客.宿迁e}7b)s"Ta{s"Y] F24 var a1 = parseInt(a);~-B5~7d3z@025 var b1 = parseInt(b);Td%lV/W']&Q|026 /k9h/O:CbN /4T027 _Default.AddTwo(a1,b1,getAdd_callback); // 异步调用服务器端方法 ![sH[$RK D028 } e {J/b H8Nr0 29 X!A3r q P#vp} n0 30 function getAdd_callback(rel)博客.宿迁@#I!PBoz$r 31 {博客.宿迁I/G9t4J&q32 //MyDemo._Default.GetServerTime()得到从服务器传来的数据是object,要写.value-_]q0t[h033 document.getElementById("result").innerHTML=rel.value;-tuAm0k7l6M034 } 博客.宿迁m#]&S$_5_dh 35 -|&O s ^ p8W0 36 </ scrīpt > Q1D6D2EB I~0 37 博客.宿迁YNGO,Vo?eH]f 38 </ body > M3UQTk G0 39 </ html > caMI s~#@HK0 40
以下是完整的后台Default.aspx.cs代码:
using System;博客.宿迁Io6]%k} v using System.Data;博客.宿迁'H{T5~,`l7kM using System.Configuration;博客.宿迁.x.Z4}:R:X3jx(T H using System.Web;博客.宿迁n;V8IR9cZJNx using System.Web.Security;博客.宿迁G.T?#B[Z:P using System.Web.UI;博客.宿迁$Y-f e?&^Fd T using System.Web.UI.WebControls;博客.宿迁~mE9YT)GXMg using System.Web.UI.WebControls.WebParts;'|B$[y2{M_0 using System.Web.UI.HtmlControls;%mlfw |T"s(G0博客.宿迁5UWA0zC public partial class _Default : System.Web.UI.Page ~0Nz+Sh x1k0 {博客.宿迁#TE S3v7I:Q.ZX)L0/ [AjaxPro.AjaxMethod]-K/n(_P|1`cX6D'X0 public int AddTwo(int firstInt, int secondInt)博客.宿迁:f;]|Kcp z`b {博客.宿迁Xjlr9f_ return firstInt + secondInt;博客.宿迁eB