首先需要先建立一個網站,建立如下的一些檔案,Web表單(Default.asp教程x)、JScript檔案(ajax.js)、Web服務(SayHelloService.asmx)、Class類(Hello.cs)
(補充一點:需要添加一個Microsoft.Web.Preview.dll,在CSDN有的下載)
<補充>需要建立一個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>
<補充>加入Preview.dll的作用就在這裡,為的是讓已習慣asp.net教程後台編碼的同胞們有似曾相識的感覺....
var btnSayHello;
var lblResult;
Sys.Application.add_init(onPageInit);
function OnFailded(error)
{
lblResult.set_text("調用失敗。錯誤資訊:"+error.get_message());
}function OnSucceeded(resultText)
{
lblResult.set_text(resultText);
}
function btnSayHello_onClick()
{
SayHelloService.SayHello(OnSucceeded,OnFailded);
}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);
}
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]
[WebMethod]
public string SayHello()
{
Hello myHello = new Hello();
return myHello.SayHello();
}
}public class SayHelloService : System.Web.Services.WebService {
public SayHelloService () {
}
Hello的代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
public class Hello
{
public Hello()
{
}
public string SayHello()
{
return "Hello!Anna";
}
}