Klassische asp umfassen
-
02-07-2019 - |
Frage
Ich versuche, einige asp Logik heraus in einer anderen Seite zu trennen. Vorerst Ich versuche, eine einfache Funktion aufzurufen.
Hier ist die einfache Index-Seite, die ich mit
<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>
Hier ist aspfunctions.asp
sub doStuff()
Response.Write("In Do Stuff")
end sub
Wenn ich die Taste auf meinem Formular getroffen bekomme ich die unten Unter doStuff () Response.Write ( "In Do Stuff") end sub
Microsoft VBScript-Laufzeitfehler '800a000d'
Hat jemand eine Idee, was ich falsch sein könnte tun?
Jede Hilfe wird sehr geschätzt
Danke Damien Typenkonflikt: 'doStuff'
/uat/damien/index.asp, Zeile 15
Lösung
aspfunctions.asp
sollte innerhalb von Tags sein, so dass die asp "ausgeführt" wird, z.
aspfunctions.asp:
<%
sub doStuff()
Response.Write("In Do Stuff")
end sub
%>
Ansonsten ist die asp in aspfunctions.asp
ist nur als Klartext zu sehen, so weit, wie der Server angeht, so hat doStuff
nie definiert wurde.
Andere Tipps
Sie müssen die asp-Funktionen innerhalb der <%%> Tag haben.
Sie sind mit der anderen Datei innerhalb einer if-Anweisung. Dies bedeutet nicht, dass es dynamisch enthalten ist, ist es nicht. Es wird immer aufgenommen werden.
Um dies in Aktion versuchen, diese Probe zu sehen:
<%
If 1=0 Then
'We never get here
%>
<!--#include file="aspFunctions.asp"-->
<%
dostuff()
End If
dostuff()
%>
Wenn ich mich richtig erinnere, müssen Sie keine Klammern für Anrufe ohne einen Rückgabewert (ungetestet Lösung):
doStuff
Nehmen Sie Änderungen an zwei Stellen:
- In aspfunctions.asp write "sub doStuff" statt
sub doStuff()
- Rufen Sie die Funktion als
doStuff
nichtdoStuff()