五、获取自定义复杂对象
? JavaScript获取复杂的数据一般使用拼接字符串或使用xml,但是在asp.net中,我们可以使用GenerateScriptType(typeof(自定义类))属性来返回较复杂的对象,并在客户端使用属性来直接访问。例: 1.?????? 首先编写webservice中的函数如下: ??????? public class user ??????? { ??????????? public string name; ??????????? public int age; ??????? } ? ??????? [WebMethod] ??????? [System.Web.Script.Services.GenerateScriptType(typeof(user))] ??????? public user getUser() ??????? { ??????????? user u = new user() { name = "soldierluo",age = 23 }; ??????????? return u; ??????? } ? 2.?????? 编写客户端代码如下: ??? <script type="text/javascript"> ??? function invokeWebservice(){ ??????? Ajax_Start.ws_start.getUser(onSuccess,onFailed); ??? } ??? function onSuccess(user){ ??????? alert("name : " + user.name + "?? age : " + user.age);????? //注意js在这里的访问方式,和后台访问对象的方式是一样的 ??? } ??? function onFailed(error){ ??????? alert(error.get_message()); ??? } ??? </script> ? ??? <form id="form1" runat="server"> ??? <div> ??????? <asp:ScriptManager ID="ScriptManager1" runat="server"> ??????????? <Services> ??????????????? <asp:ServiceReference Path="~/ws_start.asmx" /> ??????????? </Services> ??????? </asp:ScriptManager> ??? </div> ??? ??? <a onclick="invokeWebservice()">点击获取复杂对象数据</a> </form> ? 3.?????? 结果如下: ? 这里可以看到,客户端可以直接通过对象属性来读取对象的数据。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |