在asp.net AJAX客戶端使用複雜資料型別

iDotNetSpace發表於2009-12-22

見程式碼:

 javascript" type="text/javascript">
        
			function doubleSalary()
			{
				var employee = new Object();
				employee.FirstName = "X";
				employee.LastName = "PP";
				employee.Salary = 1000;
				
				ComplexType.ServerMethod(employee, onServerMethodSucceeded);
			}
			
			function onServerMethodSucceeded(result)
			{
				var message = String.format(
					"First Name: {0}\nLast Name: {1}\nFull Name: {2}\nSalary: {3}",
					result.FirstName,
					result.LastName,
					result.FullName,
					result.Salary);
					
				alert(message);
			}
        

這段程式碼首先定義了一個doubleSalary方法,裡面定義了一個客戶端employee實體類,然後將其傳給伺服器端WebService的某個方法。ComplexType 是WebService 的類名,ServerMethod是伺服器端方法,onServerMethodSucceeded是客戶端回撥方法,作用是處理伺服器方法結束之後的客戶端事件,然後在這個事件中就能發現客戶端之前定義的資料發生了變化

客戶端在執行doubleSalary之後,發給伺服器的RequestBody其實是下面的字串:

{"employee":{"FirstName":"X","LastName":"PP","Salary":1000}}

而伺服器響應回給客戶端的資料其實是一段JSON字串:

{"d":{"__type":"Employee","FirstName":"X","LastName":"PP","Salary":2000,"FullName":"X PP"}}

需要注意的是這裡雖然是客戶端呼叫伺服器端的WebService,但並不是通過SOAP而是JSON來傳送資料的

演示地址:http://www.xpp.com.cn/AspnetAjax/ClientCallWebService/ComplexType.aspx

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-623293/,如需轉載,請註明出處,否則將追究法律責任。

相關文章