您的位置:首页 > Web前端 > JavaScript

Javascript 和C#之间的互相调用和访问

2009-12-11 09:25 393 查看
这包括了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();
}

*/

}
}


以上两个,是同一个页面的一个是前台一个是后台
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: