因为jquery丰富的插件,以及对ajax的支持,所以用它和服务器端进行数据交互肯定是少不了的。
asp.net ajax就是回味了,不过关于ajax调用服务器端的方法看是看了不少,今天动手去做个demo的时候
还出了点小问题,先记下了,最近肯定会用的。
先来看看jquery方式:
要调用webservice,肯定是建一个webservice了,文件名称就叫AjaxService.asmx,内容归就很简单了,
提供一个方法,返回一个简单的string数据类型,还是注意在类名前加上
[System.Web.Script.Services.ScriptService],在方法前加上[WebService]的标记,为什么我也不知道
,就是因为不加的话就调用不了,所以加上了。这里就只有一个方法:
新建一个测试页面default.aspx,在代码里也添加一个方法,也是返回简单的数据类型,该方法想要被js
调用的话还必须是静态的,有点欺人!这都算了,还要加上 [System.Web.Services.WebMethod]才愿意
,方法如下:
前台代码很简单,就提供一个让输入的文本框,两个按钮:
<form >
<div>
<h1>返回简单的数据类型</h1>
<hr />
<input />
<input />
<input />
<hr />
</div>
</form>
可以看到按钮上并没有onclick来绑定方法,这一点就是jquery牛比了,它来绑定就行了:
2
3
运行效果就不说,输入“medal”,就弹出“hello,medal”。
asp.net ajax调用webservice方法返回复杂类型
既然是复杂类型,就新建一个类型了,就叫Users类吧,就四个属性:
2
在webservice中来两个方法,一个是返回单个Users对象,一个返回多个Users对象:
在类前面还的多两个标记,
[System.Web.Script.Services.ScriptService]
[GenerateScriptType(typeof(Users))]
第一个标记就不说了,要被调用必须加的,第二个就是返回类型是自定义的。
新建一个default.aspx页面来调用看看,html代码中,一个users对象以input把其属性显示出来,多个
users对象以table方式呈现,当然<scriptManager>控件和webservice的引用是必不可少的:
form >
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="UsersServices.asmx" />
</Services>
</asp:ScriptManager>
<div>
<h1>UserInfo:</h1>
<hr />
Id:<input /><br />
UserName:<input /><br />
PassWord:<input /><br />
Email:<input />
<hr />
<input /><input
; /><br />
<div ></div>
</div>
</form>
主角登场,js代码来了,都有注释的,不啰嗦了:
效果是页面刚加载什么都没有,单击按钮之后数据加载出来。