现在的位置: 首页 > 综合 > 正文

Ajax.NET新手指引

2012年04月05日 ⁄ 综合 ⁄ 共 3940字 ⁄ 字号 评论关闭

下载地址:

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,l0
4        return firstInt + secondInt;博客.宿迁] AM/?:j+}_d3HU
5    }
 

 

要想在客户端使用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*QcA
22    var a=document.getElementById('Text1').value;
HF,B&{|+E)CB x:m0
23    var b=document.getElementById('Text2').value;博客.宿迁e}7b)s"Ta{s"Y] F
24    var a1 = parseInt(a);
~-B5~7d3z@0
25    var b1 = parseInt(b);
Td%lV/W']&Q|0
26   
/k9h\O:CbN \4T0
27    _Default.AddTwo(a1,b1,getAdd_callback);   // 异步调用服务器端方法 
![sH[$RK D0
28    }

e {J/b H8Nr0
29
X!A3r q P#vp} n0
30    function getAdd_callback(rel)博客.宿迁@#I!PBoz$r
31    {博客.宿迁I/G9t4J&q
32       //MyDemo._Default.GetServerTime()得到从服务器传来的数据是object,要写.value
-_]q0t[h0
33        document.getElementById("result").innerHTML=rel.value;
-tuAm0k7l6M0
34    }
博客.宿迁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%C2RP_
    }
 
4w4dA@ v0 博客.宿迁[xS$WRb BXfR
    
protected void Page_Load(object sender, EventArgs e)博客.宿迁I$|PV9f3_$c&V$w]
    
{
c l7l1O u }0        AjaxPro.Utility.RegisterTypeForAjax(
typeof(_Default)); 
C[-T r-krl'V9ylk0    }
博客.宿迁N'M6B+F%p&P*eDEmd2h)r
}
博客.宿迁~nOh VR&F

 

 

抱歉!评论已关闭.