•使用scriptmethodattribute進行标記
–usehttpget屬性設為true
•用戶端使用代理的方法沒有任何變化
•參數将使用querystring進行傳遞
•性能較httppost方法略有提高
•一些特性略有改變
–緩存的基礎
aspx
<form id="form1" runat="server">
<asp:scriptmanager id="scriptmanager1" runat="server" scriptmode="debug">
<services>
<asp:servicereference path="services/usehttpgetservice.asmx" inlinescript="true" />
</services>
</asp:scriptmanager>
<input type="button" value="get random" onclick="getrandom()" />
<input type="button" value="get range random" onclick="getrandom(50, 100)" />
<script language="javascript" type="text/javascript">
function getrandom(minvalue, maxvalue)
{
if (arguments.length != 2)
{
usehttpgetservice.getrandom(onsucceeded);
}
else
usehttpgetservice.getrangerandom(minvalue, maxvalue, onsucceeded);
}
function onsucceeded(result)
alert(result);
</script>
</form>
usehttpgetservice.asmx
<%@ webservice language="c#" class="usehttpgetservice" %>
using system;
using system.web;
using system.web.services;
using system.web.services.protocols;
using system.web.script.services;
[webservice(namespace = "http://tempuri.org/")]
[webservicebinding(conformsto = wsiprofiles.basicprofile1_1)]
[scriptservice]
public class usehttpgetservice : system.web.services.webservice
{
[webmethod]
public int getrandom()
{
return new random(datetime.now.millisecond).next();
}
[scriptmethod(usehttpget=true)]
public int getrangerandom(int minvalue, int maxvalue)
return new random(datetime.now.millisecond).next(minvalue, maxvalue);
}
webservice方法加上 [scriptmethod(usehttpget=true)]修飾即表示使用get的方法通路