我正在尝试将一些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(<!> quot; In Do Stuff <!> quot;)end sub

Microsoft VBScript运行时错误'800a000d'

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

非常感谢任何帮助

由于 达米安 类型不匹配:'doStuff'

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

有帮助吗?

解决方案

aspfunctions.asp应该在标签内,所以asp是<!>“;执行<!>”,例如。

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

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

其他提示

你必须在<!> lt; %% <!> gt;中包含asp函数。标签

您将其他文件包含在if语句中。这并不意味着它是动态包含的,它不是。它将永远包括在内。

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

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

如果我没记错,那么没有返回值的呼叫就不需要括号(未经测试的解决方案):

doStuff

在两个地方进行更改:

  1. 在aspfunctions.asp中写<!> quot; sub doStuff <!> quot;而不是sub doStuff()
  2. 将该功能称为doStuffdoStuff()
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top