這包括了JS調用c#方法,JS訪問C#變數,C# 調用JS代碼,C#訪問JS變數的各種方法
JS代碼:
<script language="javascript" type ="text/javascript" > var JSVar = "This is JS Code "; function getcsharpstring() { //去調用c#的函數,請注意帶參數的寫法 var mys = '<%=CSharpString("___________This is JS Code ")%>'; //沒有參數的可以這樣寫var mys = "<%=CSharpString()%>"; alert(mys) } function getcsharpvar() { var mys = '<%= CSharpVar%>';//調問c#中的變數 alert(mys) } //此函數用於C#調用 function CSharpCall() { alert("這裡設定一個ookie "); //設定一個cookie ,在c#讀取這個cookie的值來達到訪問JS變數 document.cookie = "JSVarToCSharp= " + JSVar; } </script>
c#後台代碼:
public partial class _Default : System.Web.UI.Page { public string CSharpVar = "這是CSharp代碼";//C#變數 protected void Page_Load(object sender, EventArgs e) { } //被JS調用 public string CSharpString(string _string ) { return "這是CSharp代碼" + _string ; } protected void Button3_Click(object sender, EventArgs e) { string jsString = "<script language=javascript > CSharpCall() </script>"; /*請注意:如果這個Button3_Click是一個非同步方法呼叫的話(即ajax 中),那麼: 要用這一句去執行: ScriptManager.RegisterStartupScript(up, this.GetType(), "1","CSharpCall()",true) */ Page.RegisterStartupScript("ggg", jsString);//調用JS方法 } protected void Button4_Click(object sender, EventArgs e) { //通過讀取cookie 來得到JS的變數 HttpCookie cookie = Request.Cookies["JSVarToCSharp"]; if (cookie != null) { string jsVar = cookie.Value.ToString(); } //可以用同樣的方法讓JS訪問c#代碼,如下 /* c#(加) : using System.Web HttpCookie UserCookie = new HttpCookie("UserName",UserName); Response.Cookies.Add(UserCookie); (登出) Request.Cookies.Clear(); //將Cookies["UserName"]置空 HttpCookie customerCookie = new HttpCookie("UserName", string.Empty); Response.Cookies.Add(customerCookie); JS: function getCookie(objName) {//擷取指定名稱的cookie的值 var arrStr = document.cookie.split("; "); for(var i = 0;i < arrStr.length;i ++) { var temp = arrStr[i].split("="); if(temp[0] == objName) return unescape(temp[1]); } } function delCookie(name) {//為了刪除指定名稱的cookie,可以將其到期時間設定為一個過去的時間 var date = new Date(); date.setTime(date.getTime() - 10000); document.cookie = name + "=a; expires=" + date.toGMTString(); } */ }}
以上兩個,是同一個頁面的一個是前台一個是後台