熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Javascript和C#之間的互相調用和訪問

2013-11-13 10:14:57  來源: .NET編程 

  這包括了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變量

  okie = JSVarToCSharp= + JSVar;

  }

  </script>

  c#後台代碼

  public partial class _Default : SystemWebUIPage

  {

  public string CSharpVar = 這是CSharp代碼;//C#變量

  protected void Page_Load(object sender EventArgs e)

  {

  }

  //被JS調用

  public string CSharpString(string _string )

  {

  return  這是CSharp代碼 + _string  ;

  }

  protected void Button_Click(object sender EventArgs e)

  {

  string jsString = <script   language=javascript > CSharpCall() </script>;

  PageRegisterStartupScript(ggg jsString);//調用JS方法

  }

  protected void Button_Click(object sender EventArgs e)

  {

  //通過讀取cookie 來得到JS的變量

  HttpCookie cookie = RequestCookies[JSVarToCSharp];

  if (cookie != null)

  {

  string jsVar = cookieValueToString();

  }

  //可以用同樣的方法讓JS訪問c#代碼如下

  /*

  c#(加) 

  using SystemWeb

  HttpCookie   UserCookie   =   new   HttpCookie(UserNameUserName);

  ResponseCookiesAdd(UserCookie);

  (注銷)

  RequestCookiesClear();

  //將Cookies[UserName]置空

  HttpCookie   customerCookie   =   new   HttpCookie(UserName   stringEmpty);

  ResponseCookiesAdd(customerCookie);

  JS

  function getCookie(objName)

  {//獲取指定名稱的cookie的值

  var arrStr = okiesplit(; );

  for(var i = ;i < arrStrlength;i ++)

  {

  var temp = arrStr[i]split(=);

  if(temp[] == objName) return unescape(temp[]);

  }

  }

  function delCookie(name)

  {//為了刪除指定名稱的cookie可以將其過期時間設定為一個過去的時間

  var date = new Date();

  datesetTime(dategetTime() );

  okie = name + =a; expires= + datetoGMTString();

  }

  */

  }

  }

  以上兩個是同一個頁面的一個是前台一個是後台


From:http://tw.wingwit.com/Article/program/net/201311/13040.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.