Asp.net内联表达式在js文件中没有输出

时间:2013-06-13 05:59:36

标签: asp.net

全部,如果我在aspx页面中添加内联表达式,如下所示。

<script type="text/javascript">
   var notAcceptError='<%= lblMessage%>';//the actually value is "test message"
</script>

我们知道。应该存在一个名为lblMessage的变量,它在aspx的代码隐藏文件中定义。 这样一切都很好。 但是如果我将上面的代码移动到由同一页面链接的js文件中。 表达式的输出失败。似乎asp.net无法识别这个表达式。 我无法理解为什么这在链接的外部js文件中不起作用。在我的理解中。在aspx中写入或外部js是相同的。感谢。

2 个答案:

答案 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);