Asp classico include
-
02-07-2019 - |
Domanda
Sto cercando di separare la logica asp in una pagina separata. Per ora, sto cercando di chiamare una funzione semplice.
Ecco la semplice pagina indice che sto usando
<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>
Ecco aspfunctions.asp
sub doStuff()
Response.Write("In Do Stuff")
end sub
Quando premo il pulsante di invio sul mio modulo ottengo quanto segue sub doStuff () Response.Write (" In Do Stuff ") end sub
Errore di runtime di Microsoft VBScript '800a000d'
Qualcuno ha idea di cosa potrei fare di sbagliato?
Qualsiasi aiuto è molto apprezzato
Grazie Damien Digitare mismatch: 'doStuff'
/uat/damien/index.asp, linea 15
Soluzione
aspfunctions.asp
dovrebbe essere all'interno dei tag, quindi l'asp è " eseguito " ;, ad esempio
aspfunctions.asp:
<%
sub doStuff()
Response.Write("In Do Stuff")
end sub
%>
Altrimenti l'asp in doStuff
è visto come solo testo, quindi per quanto riguarda il server <=> non è mai stato definito.
Altri suggerimenti
Devi avere le funzioni asp all'interno di <%% > tag.
Stai includendo l'altro file in un'istruzione if. Questo non significa che sia incluso dinamicamente, non lo è. Sarà sempre incluso.
Per vederlo in azione prova questo esempio:
<%
If 1=0 Then
'We never get here
%>
<!--#include file="aspFunctions.asp"-->
<%
dostuff()
End If
dostuff()
%>
Se ricordo bene, non hai bisogno di parentesi per le chiamate senza un valore di ritorno (soluzione non testata):
doStuff
Apporta le modifiche in due punti:
- In aspfunctions.asp scrivi " sub doStuff " anziché
sub doStuff()
- Chiama la funzione come
doStuff
nondoStuff()