首页 新闻 会员 周边 捐助

JS调用后台带参数的方法

0
悬赏园豆:50 [已解决问题] 解决于 2008-04-07 13:04
<P>&nbsp;1.后台方法:<BR>   protected string CsharpVoid(string strCC)<BR>  {<BR>   return strCC;<BR>   }<BR>   2.javascript 调用<BR>  &lt;script language="javascript"&gt;<BR>   var s = "&lt;%=CsharpVoid("<A class=bbs href='http://www.esoutong.com")%/' target=_blank rel=nofollow><FONT color=#0000ff>www.esoutong.com")%</FONT></A>&gt;"; <BR>   document.write(s);<BR>   &lt;/script&gt;</P> <P>怎么把"<A class=bbs href='http://www.esoutong.com")%/' target=_blank rel=nofollow><FONT color=#0000ff>www.esoutong.com</FONT></A>"&nbsp; 换成变量,用了好多办法都不行;AJAX不用,因为这个页面有VML。<BR></P>
金鱼的主页 金鱼 | 小虾三级 | 园豆:1090
提问于:2008-04-03 11:32
< >
分享
最佳答案
0
我给你的方法如下: 1、后台方法: protected string CsharpVoid(string strCC) { strCC = "http://" + strCC; return strCC; } 2、前台页面JavaScript方法: <script language="javascript" type="text/javascript"> var v = "www.baidu.com"; var s = '<%=CsharpVoid("'+v+'")%>'; document.write(s); </script> 你试试,我在Visual Studio.Net2005中测试成功!结果在页面上写了【http://www.baidu.com】的字符串! 仔细看看这句话:var s = '<%=CsharpVoid("'+v+'")%>'; 里面的双引号和单引号! 你出现此问题直接原因还是在写码的不规范上:你的var s = "<%=CsharpVoid("www.esoutong.com")%>"; 这句话里外都用双引没有问题,可以被解释成功,但为了代码的整洁易读还是需要养成良好的写码习惯,使代码更易被读懂,避免因不规范的写码习惯而产生的不必要的错误!在JavaScript教程等书中写:在JavaScript中可以使用单引,也可以使用双引,但当在引号中还需要使用引号时可使用单引和双引的交替使用,使代码清晰易读并避免不必要的错误发生。当CsharpVoid("")中必须使用双引号时,你在定义var s时就必须使用单引号,如果还使用双引号想把原来的www.baidu.com替换为变量就会报错了(将var s = '<%=CsharpVoid("'+v+'")%>'; 这句的单引改双引写成var s = "<%=CsharpVoid(""+v+"")%>"; 是无法被解释成功的),这个错误就是不规范写码造成的。所以规范写码可以避免此类错误的发生! 附:这里要给你说明的是网友高_超的这句:var s = "<%=CsharpVoid('www.baidu.com')%>";是错误的,在Visual Studio.Net2005中是不会被编译成功的。在【<%=】之后的【CsharpVoid】是后台的方法,必须使用双引号而不能使用单引号定义传入的字符串。
刚刚 | 老鸟四级 |园豆:3151 | 2008-04-04 02:04
其他回答(3)
0
为什么要加引号呢? 我想就算是要加引号也是这个行式吧。 '<%=CsharpVoid("www.esoutong.com");%>' 或者 用一个很笨的方法。注册一个隐藏域 然后去取值。 菜鸟没办法。只会这么多 现写了一个,不知道你要的是不是这个 <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>无标题页</title> <script type="text/javascript" runat="server"> private string getString(string strA) { return strA; } </script> <script type="text/javascript"> var s='<%=getString("www.baidu.com") %>' document.write(s); </script> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html> 你要的不是这个?
二十二号同学 | 园豆:790 (小虾三级) | 2008-04-03 12:42
0
为什么不用下面的.直接就可以做变量: <script type="text/javascript"> var strCC='www.baidu.com' document.write(s); </script> 不知道你具体做什么用的: <script language="javascript"> var s = '<%=CsharpVoid("www.esoutong.com")%>'; document.write(s); </script> 这里要注意的地方是,在javascript里可以用单引号和双引号来表示字符串.但是如果你在字符串里嵌套字符串时.有相对的原则.如果外面使用了单引号.那么里面的就应该用双引号.如: var str='<%=CsharpVoid("www.esoutong.com")%>'; 同时你也可以写成 var str="<%=CsharpVoid('www.esoutong.com')%>"; 如果你需要至少三层的嵌套.那么可以交叉使用,比如:单引号-双引号-单引号或者双引号-单引号-双引号.....
MartinGao | 园豆:663 (小虾三级) | 2008-04-03 13:48
0
你在要调用的CsharpVoid方法前面把命名空间写全就行了,比如:Demo.Web.CsharpVoid("www.esoutong.com")
yuuhhe | 园豆:240 (菜鸟二级) | 2008-04-05 23:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册