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

Était-ce utile?

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:

  1. Dans aspfunctions.asp, écrivez & "; sub doStuff &"; au lieu de sub doStuff()
  2. Appelez la fonction comme doStuff pas doStuff()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top