让客户端JavaScript 直接异步调用服务器端的Web Service,这看起来真的是个不错的主意——理想化的分层Ajax应用程序就应该这样嘛!不过作为被ASP.NET
protected void Button1_Click(object sender, EventArgs e)
{
myLabel.Text = this.GetTextForLabel();
}
public string GetTextForLabel()
{
// ......
return "Some Text";
}
首先是定义在ASP.NET页面中的类方法,完整的方法声明如下:
[WebMethod]
public static string SayHelloFromPage(string name)
{
return string.Format("Hello {0}!", name);
}
特别需要注意的是,若要让ASP.NET AJAX为其生成客户端调用代理,那么一定要为该方法添加[WebMethod]属性。
程序界面中的UI元素和前一节示例程序中的完全一致,这里不赘:
onclick="return btnInvoke_onclick()" />
而本示例程序中按钮的click事件处理函数以及异步调用的回调函数则需要一定的修改,如下所示:
function btnInvoke_onclick() {
var theName = $get("tbName").value;
PageMethods.SayHelloFromPage(theName, onSayHelloSuclearcase/" target="_blank" >cceeded);
}