.net ajax資料非同步傳輸的做法

來源:互聯網
上載者:User
首先需要先建立一個網站,建立如下的一些檔案,Web表單(Default.asp教程x)、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 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";
}

}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.