紫天连水

雄关漫道真如铁,而今迈步从头越
posts - 6, comments - 14, trackbacks - 1, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

asp.net ajax 1.0,hello world程序

Posted on 2006-10-24 14:24 紫天连水 阅读(873) 评论(5)  编辑 收藏 网摘 所属分类: asp.net ajax

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 id="form1" runat="server">
        
<asp:ScriptManager ID="ScriptManager1" runat="server">
        
<Services>
        
<asp:ServiceReference Path="~/HelloWorldService.asmx" />
        
</Services>
        
</asp:ScriptManager>
        
<div>
        你的名字:
        
<input type="text" maxlength="20" id="name" />
        
<input type="button" id="button1" value="问候" onclick="SayHello()" />
        
<div id="result"></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}

Feedback

#1楼   回复  引用  查看    

2006-10-24 14:47 by firstyi      
请问一个问题:
我是刚接触ajax的,我照你的方式做了,但是当点击按钮时报javascript错:
Error:'HelloWorldService' is undefined

#2楼[楼主]   回复  引用  查看    

2006-10-25 09:26 by 紫天连水      
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/HelloWorldService.asmx" />
</Services>
</asp:ScriptManager>
这里引进web服务,需要有一个.asmx文件。顶部有下面这一句话。
<%@ WebService Language="C#" Class="HelloWorldService" %>
用vs2005做,应该不存在这个问题,都是自动生成的。

#3楼   回复  引用    

2006-10-30 17:43 by lingwu05[未注册用户]
请问你的vs2005是中文版还是英文版,我用的中文Express已经重装了N次,可ajax还是装不上,提示安装完成前异常终止。

#4楼[楼主]   回复  引用  查看    

2006-11-01 18:33 by 紫天连水      
我的vs2005是英文版哦
不太清楚中文版能不能安装
呵呵

#5楼   回复  引用    

2008-02-10 21:20 by 测试者[未注册用户]
错误:'HelloWorldService' 未定义



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 538395




相关文章:

相关链接: