自从我使用经典的asp之后已经有一段时间了,我对可变范围有完全的大脑褪色。
我在这里做错了什么?
<SCRIPT LANGUAGE=vbscript RUNAT=Server>
dim test
test = "Test it"
function testAsp()
testasp = "Should be a result here " & test
end function
</SCRIPT>
<html>
<body>
<%
response.write(testAsp())
%>
</body>
</html>
如果我在块内移动声明一切都很好。运行server 2008 R2,IIS 7.5。有什么变化吗?或者是我?
答案 0 :(得分:4)
将您的<SCRIPT LANGUAGE=vbscript RUNAT=Server>
更改为<%
,将</SCRIPT>
更改为%>
,您应该感觉良好。
您会遇到脚本引擎在经典ASP生命周期中执行的顺序。这很令人困惑,但<SCRIPT />
块将在<% %>
块之后执行,即使它首先按源的顺序排在第一位。我无法解释为什么函数在<% %>
块中定义,但我希望它与函数提升有关。
为了进一步说明,这是您开箱即用的订单(假设VBScript配置为您的默认语言):
<script runat="server" language="jscript" />
<% %>
块<script runat="server" language="vbscript" />