2

我正在尝试将一些 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

当我点击表单上的提交按钮时,我得到以下子 doStuff() Response.Write("In Do Stuff") end sub

Microsoft VBScript 运行时错误“800a000d”

有谁知道我做错了什么?

任何帮助是极大的赞赏

谢谢 Damien 类型不匹配:'doStuff'

/uat/damien/index.asp,第 15 行

4

5 回答 5

8

您必须在 <% %> 标记内包含 asp 函数。

于 2008-09-23T12:22:15.910 回答
5

aspfunctions.asp应该在标签内,以便“执行”asp,例如

aspfunctions.asp 文件:

<%
sub doStuff()
    Response.Write("In Do Stuff")
end sub
%>

否则 asp inaspfunctions.asp只是被视为纯文本,因此就服务器而言,doStuff从未定义过。

于 2008-09-23T12:24:41.240 回答
5

您在 if 语句中包含另一个文件。这并不意味着它是动态包含的,它不是。它将始终包含在内。

要查看实际情况,请尝试以下示例:

<%
If 1=0 Then
'We never get here
%>
    <!--#include file="aspFunctions.asp"-->
<%
    dostuff()
End If
dostuff()
%>
于 2008-09-23T13:04:50.050 回答
1

如果我没记错的话,没有返回值的调用不需要括号(未经测试的解决方案):

doStuff
于 2008-09-23T12:21:18.890 回答
-2

在两个地方进行更改:

  1. 在 aspfunctions.asp 中写“sub doStuff”而不是sub doStuff()
  2. 调用函数doStuffdoStuff()
于 2012-08-27T09:10:08.583 回答