我给你的方法如下:
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】是后台的方法,必须使用双引号而不能使用单引号定义传入的字符串。