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 οnclick="invokeWebservice()">点击获取复杂对象数据</a>
</form>
3. 结果如下:
这里可以看到,客户端可以直接通过对象属性来读取对象的数据。
标签:function,name,自定义,对象,age,获取,user,public From: https://blog.51cto.com/u_15906220/5920719