asp.net中前端先调用的后台方法,然后在后台再调用前端方法没有作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net中前端先调用的后台方法,然后在后台再调用前端方法没有作用相关的知识,希望对你有一定的参考价值。
各位高手,我想实现的是,在前端先调用后台方法,后台处理一些事情再调用前端方法,但第二次调用没有作用,如果直接在后台调用前端方法是可以的。
首先在前端:
window.onload = function ()
var s = '<%=OnClient() %>'; //调用后台方法
....
前端另外定义一个被调用的方法:
function MyFun22()
alert(“aaa”); //此方法定义在<head>中
最后是后台的方法:
public string OnClient()
//后台处理一些事情再调用前端方法:
ClientScript.RegisterStartupScript(ClientScript.GetType(), "MyFun22", "<script type='text/javascript'>MyFun22();</script>"); //这一句调用没有作用!!
return "OK";
如果方法OnClient放在Page_Load中调用是有效果的,但按上面的调用却没有效果了,是不是生命周期的问题,应该怎么解决这个问题呢?谢谢了!
我调试了,var s = '<%=OnClient() %>';是可以调用到的,OnClient()中的ClientScript.RegisterStartupScript(....代码段也执行了,但前端的MyFun22方法被执行。但如果在后台的page_load中直接执行ClientScript.RegisterStartupScript(....,前端的MyFun22方法是可以被执行的。 这两者有什么区别呢?
如果我想先前端调用后台的方法,然后在后台调用前端的方法,应该怎么实现呢?谢谢了!
var s = '<%=OnClient() %>'; //调用后台方法
这句话不会调用后台代码
js调用不到C#的代码。。。
C#也调用不到JS代码。。。
ClientScript.RegisterStartupScript(ClientScript.GetType(), "MyFun22", "<script type='text/javascript'>MyFun22();</script>");
这句话之所以能调用到前台的是因为他会输出以下这段html代码到前台页面
<script type="text/javascript">
MyFun22();
</script>
Js调用asp.net后台代码
方法一:
1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;
2、在前台写一个js函数,内容为document.getElementById("btn1").click()
或者document.getElementById("btn1").onclick()
3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;
方法一:直接使用<%=%>调用
前台方法:
<script type="text/javascript">
var methodStr = "<%=BehindMethod() %>";
alert(methodStr);
</script>
后台方法:
public static string BehindMethod()
{
//处理方法
return " ";
}
注:在后台创建方法,必须是static(静态的),方法必须是public类型的,否则访问不到会报异常,
以上是关于asp.net中前端先调用的后台方法,然后在后台再调用前端方法没有作用的主要内容,如果未能解决你的问题,请参考以下文章