剛才在百度百科裡找了一下WCF:Windows Communication Foundation (WCF) 是由微軟發展的一組資料通訊的應用程式開發介面,它是.NET架構的一部分,由 .NET Framework 3.0 開始引入,與 Windows Presentation Foundation 及 Windows Workflow Foundation 並行為新一代 Windows 作業系統以及 WinFX 的三個重大應用程式開發類庫。
它就是微軟開發的一組資料通訊的介面。其中wcf也實現了Ajax的服務。用它,我就可以簡化Ajax開發了。之前我寫Ajax服務,都是需要建一個ashx處理常式頁面,要序列化資料,在前台還需要還原序列化資料等,比較費事。
接下來看看如何運用它:在一個web項目中,建立-->添加新項-->啟用了AJA的XWCF服務。添加一個尾碼名為svc的處理頁面,大概內容如下:
PesrsonService.svc
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class PersonService
{
// 添加 [WebGet] 屬性以使用 HTTP GET
[OperationContract]
public void DoWork()//這個是自動產生的樣本
{
// 在此處添加操作實現
return;
}
[OperationContract] //標記了OperationContract的方法就可以在Ajax中調用
public Person GetPerson()
{
return new Person(){Name="楊鳳輝",Age=22};
}
}
public class Person
{
public string Name { set; get; }
public int Age { set; get; }
}
在aspx頁面,頁首添加一個ScriptManager控制項,然後設定一下“service集合”屬性,添加一個service,路徑path為剛才定義的svc頁面:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/PersonService.svc" />
</Services>
</asp:ScriptManager>
如此,我就可以在該頁面的Javascript代碼中調用PessonService.svc中定義的方法。
<script language="javascript" type="text/javascript">
function Button1_onclick() {
PersonService.GetPerson(function(data){alert(data.Name);},
function(){alert("失敗");});
}
</script>
吃午飯了, 接下來就可以在普通的aspx中,通過AJAX的方式調用上面定義的方法了,資料完全可以從資料庫中讀取,為了方便示範,寫了一個person類。