经典的asp包括

Dam*_*ien 2 vbscript externalizing asp-classic

我试图将一些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>
Run Code Online (Sandbox Code Playgroud)

这是aspfunctions.asp

sub doStuff()
    Response.Write("In Do Stuff")
end sub
Run Code Online (Sandbox Code Playgroud)

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

Microsoft VBScript运行时错误'800a000d'

有谁知道我可能做错了什么?

任何帮助是极大的赞赏

感谢Damien Type不匹配:'doStuff'

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

Gau*_*ain 8

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


Con*_*oyP 5

aspfunctions.asp 应该在内部标签,以便asp被"执行",例如

aspfunctions.asp:
<%
    sub doStuff()
        Response.Write("In Do Stuff")
    end sub
%>
Run Code Online (Sandbox Code Playgroud)

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


Ada*_*amH 5

您将另一个文件包含在 if 语句中。这并不意味着它是动态包含的,事实并非如此。它将永远被包括在内。

要查看实际效果,请尝试以下示例:

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