在ASP.NET中用JS如何呼叫Server端方法?
阿新 • • 發佈:2019-02-09
這個需要用到AJAX了
ASP.NET AJAX(Atlas)版本的實現程式碼
首先是頁面的HTML部分,注意ASP.NET AJAX(Atlas)獨有的ScriptManager控制元件:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<input type="button" value="Get Server Time" id="btnGetServerTime" onclick="return btnGetServerTime_onclick()" />
<span id="result" />
</div>
然後是客戶端JavaScript部分,注意用PageMethods.GetServerTime()這樣的形式呼叫伺服器端方法:
function btnGetServerTime_onclick() {
PageMethods.GetServerTime(cb_getServerTime);
}
function cb_getServerTime(result) {
document.getElementById("result").innerHTML = result;
}
伺服器端程式碼如下,注意方法必須為靜態,且新增[System.Web.Services.WebMethod]和[Microsoft.Web.Script.Services.ScriptMethod]兩個屬性:
[System.Web.Services.WebMethod]
[Microsoft.Web.Script.Services.ScriptMethod]
public static string GetServerTime()
{
return DateTime.Now.ToString();
}
ASP.NET AJAX(Atlas)版本的實現程式碼
首先是頁面的HTML部分,注意ASP.NET AJAX(Atlas)獨有的ScriptManager控制元件:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<input type="button" value="Get Server Time" id="btnGetServerTime" onclick="return btnGetServerTime_onclick()" />
<span id="result" />
</div>
然後是客戶端JavaScript部分,注意用PageMethods.GetServerTime()這樣的形式呼叫伺服器端方法:
function btnGetServerTime_onclick() {
PageMethods.GetServerTime(cb_getServerTime);
}
function cb_getServerTime(result) {
document.getElementById("result").innerHTML = result;
}
伺服器端程式碼如下,注意方法必須為靜態,且新增[System.Web.Services.WebMethod]和[Microsoft.Web.Script.Services.ScriptMethod]兩個屬性:
[System.Web.Services.WebMethod]
[Microsoft.Web.Script.Services.ScriptMethod]
public static string GetServerTime()
{
return DateTime.Now.ToString();
}