[ ] [ ]关于asp.net和javascript文件,相结合使用,在javascript中输出asp.net的变量的问题

houjianxun 2003-09-29 10:19:24
在webform1.aspx.cs中声明变量
protected string path="aaa";


在webform1.aspx的form中写<%=path%>即可输出aaa的值


在webform1.aspx中写
<Script language=javascript>
document.write("<br>");
document.write('<%=path%>');
</Script>
同可可以输出aaa的值


下面是我想解决的问题
在webform1.aspx中写
<script language=javascript src=a.js></script>
然后在a.js中写
document.write("<br>");
document.write('<%=path%>');

却无法输出aaa的值

请问各位如何解决?是什么原因导致无法输出?脚本解释在客户端?


上面写的文件我已经打包,需要调试可去下载
http://www.lionsky.net/webform1.rar
...全文
48 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnhgj 2003-09-29
  • 打赏
  • 举报
回复
后缀为js肯定无法接爱asp.net的变量啦。就像html写asp代码一样,是不会被执行的
cnhgj 2003-09-29
  • 打赏
  • 举报
回复
把js的后缀改成aspx

<script language=javascript src=a.aspx></script>

document.write("<br>");
document.write('<%=path%>');
luochen 2003-09-29
  • 打赏
  • 举报
回复
1如用一个textbox(服务器端控件,ID为myTxtbox)隐藏掉
2。后台代码中付值
myTxtbox="sdfdf";
3.然后在a.js中写
document.write("<br>");
document.write(document.all('myTxtbox').value);
阿拉丁 2003-09-29
  • 打赏
  • 举报
回复
<script language=javascript src=a.js></script> 可以的
houjianxun 2003-09-29
  • 打赏
  • 举报
回复
其实很简单,有时就是别不过来


如果出去走走,让大脑轻松一下或许就好了


结贴,感谢各位的支持

祝你们国庆快乐
xhan2000 2003-09-29
  • 打赏
  • 举报
回复
.js文件不是服务器端的

不能解析<%%>
dongchuanlu 2003-09-29
  • 打赏
  • 举报
回复
我的方法是可以实现的
注意使用的位置
ttyp 2003-09-29
  • 打赏
  • 举报
回复
<!--#include file='a.js' -->
//可能是src方式不是在一个页面里解释
tlping 2003-09-29
  • 打赏
  • 举报
回复
sorry,看错了,:)
阿拉丁 2003-09-29
  • 打赏
  • 举报
回复
1、是的,无法输出:
protected string path="aaa";这个变量只有在server端能够访问,
“在webform1.aspx的form中写<%=path%>即可输出aaa的值”,是因为你的输出是由server端处理后返回客户端的,而a.js在客户端解释执行,当然不能访问server端的变量

2、解决方法:
将path的值写到界面上控件中(比如Label1或TextBox1,visible=false),
然后在a.js中写
document.write("<br>");
document.write( document.all("label1").innerHTML );
triout 2003-09-29
  • 打赏
  • 举报
回复
出现你所说的问题的原因很简单:

你在aspx中使用:
document.write('<%=path%>');
的时候,这段代码需要在SERVER端进行处理,所以成功了。
而你把代码写在一个JS文件中的时候,首先,SERVER是不会处理JS中的内容的,因为JS不是SERVER端执行的,另外,JS是页面已经放置在CLIENT中后,由BROWSER向服务器发出申请获得的,SERVER也不会处理,所以会出现你所说的问题。

要解决这个问题,可以使用下面的方式:
1——
通过INCLUDE包含你的JS脚本

2——
在ASPX的JS或调用之前,定义公共变量,其内容就是你需要的:

ASPX中:
<script language=javascript>
var path='<%=path%>';
</script>
<script language=javascript src=a.js></script>

在JS中:
document.write(path);
tlping 2003-09-29
  • 打赏
  • 举报
回复
这里有一个执行的先后顺序的问题,如果<script>放在在<form>之前,我想它会在,类变量的初始化之前执行,那么它将取不到类变量中的值,放在</form>之后就可以了
tlping 2003-09-29
  • 打赏
  • 举报
回复
这里有一个执行的先后顺序的问题,如果<script>放在在<form>之前,我想它会在,类变量的初始化之前执行,那么它将取不到类变量中的值,放在</form>之后就可以了
tlping 2003-09-29
  • 打赏
  • 举报
回复
没有问题,你只需要把那句话<script language=javascript src='aa.js'></script>

放到</form> 标记后面
mywebcn 2003-09-29
  • 打赏
  • 举报
回复
up
houjianxun 2003-09-29
  • 打赏
  • 举报
回复
感谢楼上几位的支持

只照我说的方法
<script language=javascript src=a.js></script>

可否解决?
dongchuanlu 2003-09-29
  • 打赏
  • 举报
回复
1如用一个textbox(服务器端控件,ID为myTxtbox)隐藏掉
2。后台代码中付值
myTxtbox="sdfdf";
3.然后在a.js中写
document.write("<br>");
document.write(document.all('myTxtbox').value);
Tracy_Z 2003-09-29
  • 打赏
  • 举报
回复
up
qb515 2003-09-29
  • 打赏
  • 举报
回复
public string path="aaa";

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧