全部,如果我在aspx页面中添加内联表达式,如下所示。
<script type="text/javascript">
var notAcceptError='<%= lblMessage%>';//the actually value is "test message"
</script>
我们知道。应该存在一个名为lblMessage
的变量,它在aspx的代码隐藏文件中定义。
这样一切都很好。
但是如果我将上面的代码移动到由同一页面链接的js文件中。
表达式的输出失败。似乎asp.net无法识别这个表达式。
我无法理解为什么这在链接的外部js文件中不起作用。在我的理解中。在aspx中写入或外部js是相同的。感谢。
答案 0 :(得分:2)
你的理解是错误的。 ASPX文件被解析和评估,而JS文件是从服务器提供的,没有任何解析或评估。
答案 1 :(得分:2)
asp.net内联表达式仅适用于.aspx
个文件。它在.js
文件中不起作用,因为.js
文件充当静态文件,并且在运行时不会被解析。
如果你真的想在代码绑定文件中使用变量值到js
,你可以这样做。
在您的aspx文件中执行此操作。
<script type="text/javascript">
var notAcceptError = '<%= lblMessage%>'; //the actually value is "test message"
</script>
<%-- please note the external file is referenced after the javascript variable --%>
<script type="text/javascript" src="myjsfile.js">
</script>
在你的myjsfile.js
内使用像这样的变量
alert(notAcceptError);