技术·资讯·教育·服务·社区

2012 年 10 月 1 日6260

asp.net ajax跟atlas有了很大不同。从这个简单的例子中可以看出几点。


<1>新建一个asp.net ajax-enabled web site


<2>页面布局。Server Controls的标签前缀(Tag Prefix)由atlas变为asp;


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


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">


<html>


<head runat="server">


<title>Hello</title>


</head>


<body>


<form runat="server">


<asp:ScriptManager runat="server">


<Services>


<asp:ServiceReference Path="~/HelloWorldService.asmx" />


</Services>


</asp:ScriptManager>


<div>


你的名字:


<input type="text" maxlength="20" />


<input type="button" value="问候" />


<div></div>


</div>


</form>


</body>


</html><3>客户端脚本。调用服务的方法有些许改变。可以指定默认的回调方法。


<script type="text/javascript">


function SayHello()


{


var fs = HelloWorldService;


fs.set_defaultSucceededCallback(OnShow);


fs.HelloWorld(document.getElementById("name")。value);


}


function OnShow(result)


{


var s = document.getElementById("result");


s.innerText = result;


}


</script>


<4>HelloWorldService服务代码。为了能使服务被asp.net ajax客户端调用,必须给服务指明[ScriptService]属性(为了使用这一属性,需要引用Microsoft.Web.Script.Services命名空间)。


1using System;


2using System.Web.Services;


3using System.Web.Services.Protocols;


4using Microsoft.Web.Script.Services;


5


6[WebService(Namespace = "http://tempuri.org/")]


7[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]


8[ScriptService]


9public class HelloWorldService : System.Web.Services.WebService {


10


11 public HelloWorldService () {


12


13 //Uncomment the following line if using designed components


14 //InitializeComponent();


15 }


16


17 [WebMethod]


18 public string HelloWorld(string name) {


19 string hello = String.IsNullOrEmpty(name) ? "无名氏" : name;


20 hello += "你好,当前服务器时间是:";


21 hello += DateTime.Now.ToUniversalTime();


22 return hello;


23 }


24


25}

【责编:cc】

0 0