我的首个CSDN中发表的文章,先吼下:(以后版面和写作的方式会越来越好的)
朋友今天有问到如何实现JS与服务器端之间的交互,如果只是获得服务器端方法的返回值并且没有参数传入,可以如下代码:
<script language=javascript>
var a = "<%=ss()%>";
alert(a);
</script>
服务器
public string ss()
{
return "OK";
}
但是如果要加上参数进行交互,那就可以用到我们题目说的方法了,演示如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script language="javascript" type="text/javascript">
window.οnlοad=btnGetServerTime_onclick;
function btnGetServerTime_onclick() {
PageMethods.GetServerTime(1,cb_getServerTime);
setTimeout("btnGetServerTime_onclick()",1000);
}
function cb_getServerTime(result) {
document.getElementById("result").innerHTML = result;
}
</script>
</head>
<body >
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" />
<div>
<span id="result" /></div>
</form>
</body>
</html>
服务器端添加如下代码:
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string GetServerTime(int i)
{
if (i == 1)
return DateTime.Now.ToString();
else
return "Nothing";
}
但是使用这个方法的前提是你必须安装了ALTAS也就是.NET提供的Ajax正式版本,Visual Studio 2008自带的哦!