Asp classic 经典的asp包括

Asp classic 经典的asp包括,asp-classic,vbscript,externalizing,Asp Classic,Vbscript,Externalizing,我试图将一些asp逻辑分离到一个单独的页面中。 现在,我尝试调用一个简单的函数 这是我正在使用的简单索引页 <html> <head> <title>Calling a webservice from classic ASP</title> </head> <body> <% If Request.ServerVariables("REQUEST_METHOD") = "POST" Then %> <

我试图将一些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>
当我点击表格上的“提交”按钮时,我得到以下信息 sub doStuff()Response.Write(“In Do Stuff”)end sub

Microsoft VBScript运行时错误“800a000d”

有人知道我做错了什么吗

非常感谢您的帮助

谢谢 达米恩 类型不匹配:“doStuff”


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

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


您必须在标记内具有asp函数。

aspfunctions.asp
应位于标记内,以便asp被“执行”,例如

aspfunctions.asp:

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

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

要查看此操作,请尝试以下示例:

<%
If 1=0 Then
'We never get here
%>
    <!--#include file="aspFunctions.asp"-->
<%
    dostuff()
End If
dostuff()
%>

在两个地方进行更改:

  • 在aspfunctions.asp中写入“sub doStuff”,而不是
    sub doStuff()
  • 将函数调用为
    doStuff
    not
    doStuff()
  • 经典案例:另一组(或数百只)眼睛看到了原始开发人员无法看到的东西…好交易!
    doStuff
    
    aspfunctions.asp:
    <%
        sub doStuff()
            Response.Write("In Do Stuff")
        end sub
    %>
    
    <%
    If 1=0 Then
    'We never get here
    %>
        <!--#include file="aspFunctions.asp"-->
    <%
        dostuff()
    End If
    dostuff()
    %>