自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用ASP.NET AJAX調(diào)用WCF服務(wù)項(xiàng)模板

開發(fā) 后端
本文將講述如何使用ASP.NET AJAX調(diào)用WCF服務(wù)項(xiàng)模板,讓您對(duì)WCF和AJAX有一個(gè)更加深入的了解。希望本文對(duì)您有所幫助。

開發(fā)平臺(tái)

1.Visual Studio 2008 SP1

2..NET Framework 3.5 SP1

3.ASP.NET AJAX

4.IIS 7或者VS 集成Web服務(wù)器 [WCF 和 SVS 文件配置]

5.Windows Vista

介紹

WCF (Windows Communication Foundation)中新增了很多特性來(lái)加強(qiáng)微軟應(yīng)用程序開發(fā)平臺(tái),尤其是在應(yīng)用程序之間的通信上。在本篇文章 中,我們講了解到WCF是如何直接在客戶端JavaScript中使用的場(chǎng)景。這是由ASP.NET AJAX提供的一項(xiàng)非??岬奶匦浴T诒酒恼轮?,我們 不 會(huì)對(duì)WCF的內(nèi)部細(xì)節(jié)加以大量討論,而是講主要精力放在如何在JavaScript中直接使用服務(wù)。因此,我們?cè)谀缓蟛粫?huì)對(duì)ASP.NET或者.NET運(yùn)行時(shí) 是如何管理這些功能的特性進(jìn)行探討。

為了演示文中涉及的理論與事實(shí),我們講創(chuàng)建一個(gè)帶有兩個(gè)工程的解決方案。因此,不浪費(fèi)時(shí)間了,開始創(chuàng)建一個(gè)空白的解決方案并保存起 來(lái)?,F(xiàn)在,添加一個(gè)新的類庫(kù)項(xiàng)目到解決方案中。命名該類庫(kù)為ServiceLibrary。然后,添加一個(gè)Web應(yīng)用程序工程到該解決方案中并命名為 WEBUI。后面我們將看到有兩種方式添加能夠讓JavaScript調(diào)用的WCF服務(wù)。

1.使用啟用AJAX的WCF服務(wù)項(xiàng)模板

2.在類庫(kù)中使用服務(wù)接口定義

使用啟用AJAX的WCF服務(wù)項(xiàng)模板

這里,我們將看到一種簡(jiǎn)單明了的方式在JavaScript中調(diào)用一個(gè)WCF服務(wù) 。右鍵點(diǎn)擊Web應(yīng)用程序工程并選擇添加新項(xiàng)。選擇啟用AJAX的WCF服務(wù)項(xiàng)模板,并命名為“HelloWorldService.svc” 最后點(diǎn)擊確定。此時(shí), 向?qū)?huì)如愿添加一個(gè)HelloWorldService.svc文件到解決方案中。該文件也提供了代碼分離頁(yè)面。如果你在一個(gè)XML文件編輯器中打開了該文件 ,你將看到如下形式的標(biāo)簽:

<%@ ServiceHost Language="C#" Debug="true"
Service="WebUI.HelloWorldService" CodeBehind="HelloWorldService.svc.cs" %>

如果你打開后臺(tái)代碼文件,將看到如下形式的代碼:

namespace WebUI
{
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Allowed)]
public class HelloWorldService
{
[OperationContract]
public void DoWork()
{
return;
}
}
}

VS 2008會(huì)自動(dòng)為你在web.config文件中添加一些必要的配置,因此不需要手工在web.config文件中添加任何配置?,F(xiàn)在,繼續(xù)并添加一個(gè) HelloWorld()方法,該方法返回一個(gè)“HelloWorld”的字符串并為該方法添加一個(gè)[OperationContract]特性。在本篇文章的后面我們將解釋該 特性。

現(xiàn)在,為Web應(yīng)用程序工程添加一個(gè)頁(yè)面并命名它為“HelloWorldTest.aspx”。從Visual Studio工具箱中拖拽一個(gè)Script Manager項(xiàng)到頁(yè) 面上。在ScriptManager 標(biāo)簽內(nèi)部,添加一個(gè)到該服務(wù)的引用。下面給出了該代碼示例:

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="~/HelloWorldService.svc" />
    </Services>
</asp:ScriptManager>

現(xiàn)在,添加一個(gè)button按鈕和一個(gè)textbox文本框到頁(yè)面上,并為該按鈕添加點(diǎn)擊事件處理程序,以使用JavaScript函數(shù)來(lái)調(diào)用服務(wù)。當(dāng)你 編寫服務(wù)調(diào)用函數(shù)時(shí),Visual Studio 2008 HTML編輯器將提供智能感知功能以方便編寫必要的函數(shù)調(diào)用。完整的HTML代碼如下所示:

<form id="form1" runat="server">
<div>
    <script language="javascript" type="text/javascript">
        function GetValueFromServer() {
            HelloWorldService.HelloWorld(onSuccess, onFailure);
        }
        function onSuccess (result) {
            document.getElementById ('txtValueContainer').value = result;
        }

        function onFailure(result) {
            window.alert (result);
        }
    </script>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path="~/HelloWorldService.svc" />
        </Services>
    </asp:ScriptManager>
    <input id="btnServiceCaller" type="button" value="Get Value"
           onclick="GetValueFromServer()"; />
    <input id="txtValueContainer" type="text" value="" />
</div>
</form>

注意,當(dāng)調(diào)用服務(wù)時(shí),我們傳遞了兩個(gè)方法:一個(gè)用于進(jìn)行回調(diào)而另一個(gè)用于錯(cuò)誤回調(diào)。如果我們需要傳遞任何參數(shù)到該函數(shù)中,這些參數(shù) 會(huì)首先傳遞進(jìn)去然后再進(jìn)行回調(diào)。

因此,如果我們有一個(gè)名為getvalue 的函數(shù)并接收兩個(gè)字符串參數(shù),那么我們將以[NameSpaceName].[ServiceName].getvalue(“value one”,”value two”,on_success,on_error);的方式調(diào)用該函數(shù),此刻on_success和on_error各自表示回調(diào)和錯(cuò)誤回調(diào)。

【編輯推薦】

  1. 技術(shù)高手講評(píng)ASP.NET MVC 1.0
  2. ASP.NET十個(gè)有效性能優(yōu)化的方法
  3. 詳解AJAX在ASP.NET中的實(shí)現(xiàn)方式
責(zé)任編輯:彭凡 來(lái)源: IT168
相關(guān)推薦

2009-07-20 17:39:36

WCF服務(wù)ASP.NET AJA

2009-07-27 17:54:39

WCF服務(wù)ASP.NET

2009-07-21 09:53:55

ASP.NET AJAWCF服務(wù)

2010-02-26 10:30:03

ASP.NET Aja

2009-12-08 16:59:52

WCF服務(wù)

2009-07-27 17:38:30

WCF服務(wù)ASP.NET 3.5

2009-04-21 09:37:50

ASP.NETAjaxJavaScript

2009-07-27 17:51:58

WCF服務(wù)ASP.NET

2010-03-02 16:58:11

AJAX WCF服務(wù)項(xiàng)

2009-07-20 17:59:07

JavaScript調(diào)ASP.NET AJA

2009-07-22 16:05:34

ASP.NET AJA

2009-07-24 13:41:15

ASP.NET AJA

2009-07-22 16:17:39

ASP.NET AJA

2009-07-22 16:11:43

ASP.NET AJA

2009-07-22 16:25:41

ASP.NET AJA

2009-07-27 09:07:04

Profile SerASP.NET AJA

2009-07-27 17:46:42

WCF服務(wù)ASP.NET應(yīng)用程序

2009-07-20 10:16:13

配置ASP.NET A

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-07-28 09:02:32

asp.net aja
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)