ASP clássico incluir
-
02-07-2019 - |
Pergunta
Eu estou tentando separar alguma lógica asp para fora em uma página separada. Por agora, eu estou tentando chamar uma função simples.
Aqui está a página de índice simples que eu estou 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>
Aqui está aspfunctions.asp
sub doStuff()
Response.Write("In Do Stuff")
end sub
Quando eu acertar o botão enviar no meu formulário eu recebo o abaixo sub doStuff () Response.Write ( "Em fazer coisas") end sub
Microsoft VBScript erro de execução '800a000d'
Alguém tem alguma idéia do que eu poderia estar fazendo de errado?
Qualquer ajuda é muito apreciada
Graças Damien Incompatibilidade de tipo: 'doStuff'
/uat/damien/index.asp, linha 15
Solução
aspfunctions.asp
deve ser dentro de tags para que o ASP é "executado", por exemplo.
aspfunctions.asp:
<%
sub doStuff()
Response.Write("In Do Stuff")
end sub
%>
Caso contrário, o asp em aspfunctions.asp
é visto apenas como texto simples, assim, tanto quanto o servidor está em causa, doStuff
nunca foi definido.
Outras dicas
Você deve ter as funções ASP dentro da tag <%%>.
Você está incluindo outro arquivo dentro de uma instrução if. Isso não significa que ele está incluído dinamicamente, não é. Ele sempre será incluído.
Para ver isso em ação tentar este exemplo:
<%
If 1=0 Then
'We never get here
%>
<!--#include file="aspFunctions.asp"-->
<%
dostuff()
End If
dostuff()
%>
Se bem me lembro, você não precisa de suportes para chamadas sem um valor de retorno (solução não testado):
doStuff
fazer alterações em dois locais:
- Na gravação aspfunctions.asp "sub doStuff" em vez de
sub doStuff()
- Chame a função como
doStuff
nãodoStuff()