我正在处理包含另一个ASP页面的旧代码。
<!--#INCLUDE virtual="/PAGE1.ASP"-->
从该页面获取一个变量,例如x,我相信我会这样做:
x = Request.Form("x")
那是对的吗?
另外,变量名称是否对经典.ASP文件区分大小写?
非常感谢。
最佳答案
您应该认为该页面是内置到一个连续页面中的,因此,如果包含许多.asp
文件,它们将构成您完成的页面。
例如,如果您有三个文件:
文件_1.asp
<h1>Hello, World!</h1>
File_2.asp
<p>This file will be included too!</p>
File_3.asp
<%Dim version
version = 1.1%>
...并将它们包含在一个核心文件中...
File_Output.asp
<!-- #include virtual="file_1.asp" -->
<!-- #include virtual="file_2.asp" -->
<!-- #include virtual="file_3.asp" -->
<% Response.Write(version) %>
File_Output.asp
将显示version
中定义的File_3.asp
变量。有一篇不错的小文章here。
-编辑-
只需添加(在文章末尾错过了问题):
区分大小写取决于Classic ASP使用的脚本语言。使用VBScript时,变量名区分大小写,而区分大小写,而使用JScript(从语法上讲,它非常类似于JavaScript),变量区分大小写。
另外,要解决
Err
对象:有一个很棒的小片段here,但是要了解细节,您需要将代码包装在一个错误捕获块中,如下所示:
On Error Resume Next '<-- This line starts trapping errors
...
On Error Goto 0 '<-- This line stops trapping errors
如果此块中确实发生错误,则需要对其进行处理。与ASP.NET,Java等不同,您不会被告知存在错误。没有好的
Try...Catch
包装器可以很好地处理错误。您必须某种程度地预测错误将在何处发生。通常很明显。如果脚本中有数据库操作,则最好在读取或写入数据后立即测试错误。检查错误很简单-您测试Number
对象的Err
属性:On Error Resume Next '<-- This line starts trapping errors
'Some database manipulation...
If Err.Number <> 0 Then
... 'Handle the error
End If
On Error Goto 0 '<-- This line stops trapping errors
可以扩展为考虑不同的错误消息:
On Error Resume Next '<-- This line starts trapping errors
'Some database manipulation...
Select Case Err.Number
Case 1
... 'Handle the error
Case 2
...
Case 3021 'No data returned
Response.Write("No data was returned.")
End Select
On Error Goto 0 '<-- This line stops trapping errors
希望这可以帮助。
关于variables - 在经典ASP中传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26129183/