javascript 与 C# 互相调用

本文介绍了几种在ASP中调用JavaScript函数的方法,并探讨了如何在JavaScript中访问C#函数及变量,反之亦然。提供了实用的代码示例,帮助开发者实现前后端之间的数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多人都向在服务器 端调用客户端的函数来操作,也就是在asp中调用java script脚本中已经定义好的脚本函数。经过研究,发现了一些勉强的方法。

1. 用Response.Write方法写入脚本

比如在你单击按钮后,先操作数据库 ,完了后显示已经完成,可以在最后想调用的地方写上
Response.Write("<script type='text/javascript'>alert();</script>");

这个方法有个缺陷就是不能调用脚本文件 中 的自定义的函数,只能调用内部函数,具体调用自定义的函数只能在Response.Write写上函数定义,比如 Response.Write("<script type='text/javascript'>function myfun(){...}</script>");

2. 用ClientScript类动态添加脚本


用法如下:在想调用某个javascript脚本函数的地方添加代码,注意要保证MyFun已经在脚本文件中定义过了。

    ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");

这个方法比Response.Write更方便一些,可以直接调用脚本文件中的自定义函数。

3. 普通的添加控件的Attributes属性

对于普通按钮就是:Button1.Attributes.Add("onclick","MyFun();");

只能在Onload中或类似于onload的初始化过程中添加才有效。而且是先执行脚本函数,无法改变执行顺序。

注意,以上所有方法中,后台代码都不能有转化当前页的代码,比如Redirect等,要把转页代码放在脚本里面

 

 

问:

1. 如何在 JavaScript 访问 C# 函数 ?

2. 如何在 JavaScript 访问 C# 变量 ?

3. 如何在 C# 中访问 JavaScript 的已有变量 ?

4. 如何在 C# 中访问 JavaScript 函数 ?


问题 1 答案如下:

javaScript 函数中执行 C# 代码中的函数:

方法一: 1 、首先建立一个按钮,在后台将调用或处理的内容写入 button_click ;


2
、在前台写一个 js 函数,内容为 doc ument.getElementById("btn1").click();


3
、在前台或后台调用 js 函数,激发 click 事件,等于访问后台 c# 函数;


方法二: 1 、函数声明为 public


后台代码 ( public 改成 protected 也可以 )


public string ss()


{


return("a");


}


2
、在 html 里用 <%=fucntion()% > 可以调用


前台脚本


<script language=javascript >


var a = " <%=ss()% >";


alert(a);


</script >

方法三: 1 <script language="javascript" >


<!--


function __doPostBack(eventTarget, eventArgument)


{


var theForm = document.Form1;
//
runat=server form


theForm.__EVENTTARGET.value = eventTarget;


theFrom.__EVENTARGUMENT.value = eventArgument;


theForm.submit();


}


-- >


</script >


<input id="Button1" type="button" name="Button1" value="
按钮 " >


方法四: <script language="javascript" >

function SubmitKeyClick()

{


if (event.keyCode == 13)


{


event.cancelBubble = true;


event.returnValue = false;


document.all.FunName.value="
你要调用的函数名 "


document.form[0].submit();


}

}

</script >


<INPUT id="aaa" type="text" >

<input type="hidden" name="FunName" > 〈! -- 用来存储你要调用的函数 --


.CS 里有:

public Page_OnLoad()

{

if (!Page.IsPost())

{

string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";

// 根据传回来的值决定调用哪个函数

switch(strFunName)

{

case "enter()":

enter() ; // 调用该函数

break;

case " 其他 ":

// 调用其他函数

break;

default:

// 调用默认函数

break;

}

}

}


public void enter()

{

//…… 比如计算某值

}


问题 2. 如何在 JavaScript 访问 C# 变量 ?

答案如下:

方法一: 1 、通过页面上隐藏域访问 <input id="xx" type="hidden" runat="server" >

方法二: 1 、如后台定义了 PUBLIC STRING N; 前台 js 中引用该变量的格式为 ' <%=n% > ' "+ <%=n% >+"

方法三: 1 、或者你可以在服务 器端变量赋值后在页面注册一段脚本


" <script language= 'javascript ' >var temp=" + tmp + " </script >"


tmp
是后台变量,然后 js 中可以直接访问 temp 获得值。



3. 如何在 C# 中访问 JavaScript 的已有变量 ?


答案如下:


方法一: 1 、前台使用静态文本控件隐藏域,将 js 变量值写入其中;


2
、后台用 request["id"] 来获取值;


方法二:可以用 cookie session

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值