Asp classique incluent
-
02-07-2019 - |
Question
J'essaie de séparer une partie de la logique asp en une page distincte. Pour l'instant, j'essaie d'appeler une fonction simple.
Voici la page d'index simple que j'utilise
<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>
Voici aspfunctions.asp
sub doStuff()
Response.Write("In Do Stuff")
end sub
Lorsque je clique sur le bouton d'envoi de mon formulaire, le message ci-dessous s'affiche. sub doStuff () Response.Write (" dans les tâches ") end sub
Erreur d'exécution Microsoft VBScript '800a000d'
Quelqu'un at-il une idée de ce que je pourrais mal faire?
Toute aide est grandement appréciée
Merci Damien Incompatibilité de type: 'doStuff'
/uat/damien/index.asp, ligne 15
La solution
aspfunctions.asp
doit être à l'intérieur des balises pour que l'asp soit & "exécuté" & "; p. ex.
aspfunctions.asp:
<%
sub doStuff()
Response.Write("In Do Stuff")
end sub
%>
Sinon, l'asp dans doStuff
est simplement considéré comme du texte brut. Par conséquent, pour le serveur, <=> n'a jamais été défini.
Autres conseils
Vous devez avoir les fonctions asp à l'intérieur du <%% > tag.
Vous incluez l'autre fichier dans une instruction if. Cela ne signifie pas que cela est inclus dynamiquement, ce n'est pas. Il sera toujours inclus.
Pour voir cela en action, essayez cet exemple:
<%
If 1=0 Then
'We never get here
%>
<!--#include file="aspFunctions.asp"-->
<%
dostuff()
End If
dostuff()
%>
Si je me souviens bien, vous n'avez pas besoin de crochets pour les appels sans valeur de retour (solution non testée):
doStuff
Faites des changements à deux endroits:
- Dans aspfunctions.asp, écrivez & "; sub doStuff &"; au lieu de
sub doStuff()
- Appelez la fonction comme
doStuff
pasdoStuff()