2008-09-23 6 views
2

J'essaie de séparer une partie de la logique d'une page séparée. Pour l'instant, j'essaie d'appeler une fonction simple.Classic asp include

Voici la page d'index simple que je me sers

<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> 

est ici aspfunctions.asp

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

Quand je frappe le bouton Envoyer sur mon formulaire ci-dessous je reçois le sous doStuff () Response.Write ("In Do Stuff") end sub

Erreur d'exécution de Microsoft VBScript '800a000d'

Quelqu'un at-il une idée de ce que je pourrais faire mal?

Toute aide est grandement appréciée

Merci Damien Type mismatch: 'doStuff'

/uat/damien/index.asp, ligne 15

Répondre

5

aspfunctions.asp doit être à l'intérieur des étiquettes afin que l'asp soit "exécuté", par ex.

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

Sinon, le asp dans aspfunctions.asp est tout simplement considéré comme texte brut, donc autant que le serveur est concerné, doStuff n'a jamais été défini.

1

Si je me souviens bien, vous avez besoin pas entre parenthèses pour les appels sans valeur de retour (solution non testée):

doStuff 
8

Vous devez avoir les fonctions ASP à l'intérieur la balise <%%>.

+0

classique cas d'anot son ensemble (ou ses centaines) d'yeux voyant ce que le développeur d'origine ne pouvait pas ... bonne affaire! – curtisk

4

Vous incluez l'autre fichier dans une instruction if. Cela ne veut pas dire que c'est inclus dynamiquement, ce n'est pas le cas. Ce sera toujours inclus.

Pour voir en action essayer cet exemple:

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

Apporter des modifications à deux endroits:

  1. En aspfunctions.asp écriture "sous doStuff" au lieu de sub doStuff()
  2. Appelez la fonction comme doStuff pas doStuff()
+2

Non. Ce n'est pas grave. –

Questions connexes