我正在尝试将一些asp逻辑分离到一个单独的页面中。 现在,我试图调用一个简单的函数。
这是我正在使用的简单索引页面
<html>
<head>
<title>Calling a webservice from classic ASP</title>
</head>
<body>
<%
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
%>
<!--#include file="aspFunctions.asp"-->
<%
doStuff()
End If
%>
<FORM method=POST name="form1" ID="Form1">
ID:
<INPUT type="text" name="corpId" ID="id" value="050893">
<BR><BR>
<INPUT type="submit" value="GO" name="submit1" ID="Submit1" >
</form>
</body>
</html>
这是aspfunctions.asp
sub doStuff()
Response.Write("In Do Stuff")
end sub
当我点击表单上的提交按钮时,我会得到以下内容 sub doStuff()Response.Write(“In Do Stuff”)end sub
Microsoft VBScript运行时错误'800a000d'
有谁知道我可能做错了什么?
非常感谢任何帮助
由于 达米安 类型不匹配:'doStuff'
/uat/damien/index.asp,第15行
答案 0 :(得分:8)
你必须在&lt; %%&gt;中包含asp函数标签
答案 1 :(得分:5)
aspfunctions.asp
应该在内部标签中,因此asp被“执行”,例如
aspfunctions.asp:
<%
sub doStuff()
Response.Write("In Do Stuff")
end sub
%>
否则aspfunctions.asp
中的asp只被视为纯文本,因此就服务器而言,doStuff
从未定义过。
答案 2 :(得分:4)
您将其他文件包含在if语句中。这并不意味着它是动态包含的,它不是。它将永远包括在内。
要查看此操作,请尝试以下示例:
<%
If 1=0 Then
'We never get here
%>
<!--#include file="aspFunctions.asp"-->
<%
dostuff()
End If
dostuff()
%>
答案 3 :(得分:1)
如果我没记错,那么没有返回值的呼叫就不需要括号(未经测试的解决方案):
doStuff
答案 4 :(得分:-2)
在两个地方进行更改:
sub doStuff()
doStuff
而不是doStuff()