日期:2014-05-16  浏览次数:20418 次

关于前台调用后台方法
我想实现一个功能就是在前台js里调用后台方法,可以js方法里的每个参数用alert弹出都好好的,就是调用后台参数老是提醒不存在该定义,在线求解啊
 function Send(Id,Id2,tono, serviceno) {
  if (confirm("是否发送短信?")) {
  <%=SendMessage(Id,Id2,tono,serviceno);%>
这段代码,如果每一个参数alert出来都不会提示错误,在传给SendMessage做参数时,Id不会提示不存在该定义,但是后面三个都会,不知道是什么原因,帮忙解释下吧,给个正确的解决方法啊

------解决方案--------------------
if (confirm("是否发送短信?")) { 
// ajax 请求
}

参考
http://www.w3school.com.cn/ajax/index.asp
------解决方案--------------------
包在asp里面 那这个参数传的当然是未定义的。。
我没看到具体的 但就你这样写,最起码也应该是
<%=SendMessage(%>+Id,Id2,tono,serviceno+<%=);%>;
至于这样会不会报错我就不清楚了。。
------解决方案--------------------
你应该用document。write()试试,在function里面写小脚本 我确实没有使用过!!!
------解决方案--------------------
你出现这个以为明显是没有明白web程序运行过程
前台代码是客户端浏览器执行,后台代码在服务器运行,都不再同一台电脑上,你怎么调?
<%=..%>的方式是错觉,根本不能达到动态调用后台函数的目的,
过程是:
页面加载时<%=.. %>内部代码被作为后台代码运行,也就是说此时html都还没有发送到客户端,所有客户端的东西(html元素,js变量)全都没有生成,所以你那些作为参数的变量明显全部未定义;后台执行该代码获得结果后,用该结果替换<%= %>,然后和html一起发送到客户端,在页面再次发出客户端请求前,不可能调用后台函数。过程就是这样,你想由js生成参数,调用后台函数的想法是无法实现的。
还是写Ajax请求吧,不不进行通信是不可能实现跨电脑调用函数的
------解决方案--------------------
探讨

你出现这个以为明显是没有明白web程序运行过程
前台代码是客户端浏览器执行,后台代码在服务器运行,都不再同一台电脑上,你怎么调?
<%=..%>的方式是错觉,根本不能达到动态调用后台函数的目的,
过程是:
页面加载时<%=.. %>内部代码被作为后台代码运行,也就是说此时html都还没有发送到客户端,所有客户端的东西(html元素,js变量)全都没有生成,所以你那些作为参数的变量明显全部……

------解决方案--------------------
··················换个js框架试试
------解决方案--------------------
调用后台的话还是ajax吧,方便并且强大
------解决方案--------------------
这怎么可以

一个是javascript
一个是服务器端程序
能在一起运行嘛
------解决方案--------------------
能这样使用才怪:
function Send(Id,Id2,tono, serviceno) {
if (confirm("是否发送短信?")) { 
<%=SendMessage(Id,Id2,tono,serviceno);%>

js代码是在客户端执行的,<%=SendMessage(Id,Id2,tono,serviceno);%>是在服务器端执行的。
根本就不在同一个地方,Send(Id,Id2,tono, serviceno) 这个参数的值,怎么可能传得了到:
<%=SendMessage(Id,Id2,tono,serviceno);%>
你最好用ajax吧。