Ajax--WebService返回自定义类数组
自定义类:
public class people { private string name; public string Name { get { return name; } set { name = value; } } private string password; public string Password { get { return password; } set { password = value; } } }
WebService:
[WebMethod] public people[] GetPersonArray() { people[] p = new people[5]; for (int i = 0; i < p.Length; i++) { p[i] = new people(); p[i].Name = "张" + i.ToString(); p[i].Password = "密" + i.ToString(); } return p; }
ScriptManager:
<asp:ScriptManager ID="sm" runat="server"> <Services> <asp:ServiceReference Path="~/WebService2.asmx" InlineScript="true" /> </Services> </asp:ScriptManager>
页面控件:
<input type="button" value="Click Me!" onclick="btn_click()" id="btn" /> <div id="result"> </div>
Js:
<script type="text/javascript"> function btn_click(){ WebService2.GetPersonArray(onSuccessed); } function onSuccessed(result){ for(var i=0;i<result.length;i++){ var label = document.createElement("label"); label.innerHTML=result[i]["Name"]+"-----"+result[i]["Password"]+"<br/>"; $get("result").appendChild(label); } } </script>
debugger后:
结果:
查看源文件:
在源文件Js文件的下面部分:
WebService2._staticInstance.GetPersonArray(onSuccess,onFailed,userContext); } var gtc = Sys.Net.WebServiceProxy._generateTypedConstructor; if (typeof(people) === 'undefined') { var people=gtc("people"); people.registerClass('people');可以看到,服务器端的people类已经被映射到了客户端.