2008-09-23 4 views
2

Я пытаюсь отделить некоторую логику 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> 

Вот aspfunctions.asp

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

Когда я нажал кнопку представить на моей форме я получаю ниже югу DoStuff () Response.Write ("In Do Stuff") end sub

Ошибка выполнения Microsoft VBScript '800a000d'

Кто-нибудь знает, что я могу делать неправильно?

не любая помощь очень ценится

Спасибо Дэмиен Несоответствие типа: '' DoStuff

/uat/damien/index.asp, линия 15

ответ

5

aspfunctions.asp должен быть внутри тегов, поэтому asp «выполнен», например.

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

В противном случае жерех в aspfunctions.asp просто рассматривается как обычный текст, так далеко, как сервер обеспокоен, doStuff никогда не была определена.

1

Если я правильно помню, вам нужно не скобки для вызовов без возвращаемого значения (непроверенное решение):

doStuff 
8

У вас должны быть функции asp внутри тег <%%>.

+0

классический случай anot ее набор (или сотни) глаз, видящих, что оригинальный разработчик не мог ... хорошо! – curtisk 2008-09-23 12:48:13

4

Вы включаете другой файл в оператор if. Это не означает, что он динамически включен, это не так. Он всегда будет включен.

Чтобы увидеть это в действии, попробуйте этот пример:

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

Вносить изменения в двух местах:

  1. В aspfunctions.asp пишут "суб DoStuff" вместо sub doStuff()
  2. Вызвать функцию as doStuff не doStuff()
+2

Нет. Это не имеет значения. – 2012-08-27 12:06:35