最近有好长一段时间没有写博客了,都在潜水学习Ajax,和做网站...

举一个小小的例子,阐述最近的学习成果:

首先需要先建立一个网站,新建如下的一些文件,Web窗体(Default.aspx)、JScript文件(ajax.js)、Web服务(SayHelloService.asmx)、Class类(Hello.cs)

(补充一点:需要添加一个Microsoft.Web.Preview.dll,在CSDN有的下载)

 

  • Default.aspx前台代码:

<补充>需要新建一个ScriptManager控件,为了进行ajax数据交互,局部刷新

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Assembly="Microsoft.Web.Preview" Name="PreviewScript.js" />
<asp:ScriptReference Path="~/ajax.js" />
</Scripts>
<Services>
<asp:ServiceReference Path="~/SayHelloService.asmx" />
</Services>
</asp:ScriptManager>

<div>
<input id="btnSayHello" type="button" value="SayHello" />
<div id="result"></div>
</div>
</form>
</body>
</html>

 

 

 

  • ajax文件的代码:
  •  

<补充>加入Preview.dll的作用就在这里,为的是让已习惯asp.net后台编码的同胞们有似曾相识的感觉.... 

var btnSayHello;
var lblResult;

Sys.Application.add_init(onPageInit);

function onPageInit()
{
    btnSayHello=new Sys.Preview.UI.Button($get("btnSayHello"));
    btnSayHello.initialize();
   
    lblResult=new Sys.Preview.UI.Label($get("result"));
    lblResult.initialize();
   
    btnSayHello.add_click(btnSayHello_onClick);
}

function btnSayHello_onClick()
{
    SayHelloService.SayHello(OnSucceeded,OnFailded);
}

function OnSucceeded(resultText)
{
    lblResult.set_text(resultText);
 }

function OnFailded(error)
{
    lblResult.set_text("调用失败。错误信息:"+error.get_message());
}

  • SayHelloService.cs文件的代码:
  •  

<补充>这个Web服务的类的作用在于为js文件与普通的类之间,构造一个“沟通本台”。

其实在基本的类中也可以做到这一点,但要在基本的类中加入【ScriptService】、【WebMethod】等关键字,在一定程度中“污染”基本类。

记得补充【ScriptService】、【WebMethod】等关键字,同时当你每写一个函数的时候,都要记得在前面加入【WebMethod】关键字。 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;



[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo
= WsiProfiles.BasicProfile1_1)]
[ScriptService]


public class SayHelloService : System.Web.Services.WebService {

public SayHelloService () {
}



[WebMethod]
public string SayHello()
{
Hello myHello
= new Hello();
return myHello.SayHello();
}
}

 

 

 

  • Hello.cs的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;


public class Hello
{
public Hello()
{
}

public string SayHello()
{
return "Hello!Anna";
}

}

如果大家有一些其他的做法与看法,希望大家给我留言,我也想听一下其他人的做法...

作者: guolebin7 发表于 2011-05-13 17:11 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架