Вопрос

Я пытаюсь выделить некоторую логику asp на отдельную страницу.На данный момент я пытаюсь вызвать простую функцию.

Вот простая индексная страница, которую я использую

<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>

Вот aspfunctions.asp

sub doStuff()
    Response.Write("In Do Stuff")
end sub

Когда я нажимаю кнопку «Отправить» в своей форме, я получаю приведенный ниже Subs DoStuff () ответ.

Ошибка выполнения Microsoft VBScript «800a000d»

Кто-нибудь знает, что я могу делать неправильно?

Любая помощь очень ценится

Спасибо Дэмиен Тип несоответствие:'сделать вещи'

/uat/damien/index.asp, строка 15

Это было полезно?

Решение

aspfunctions.asp должен находиться внутри тегов, чтобы asp «исполнялся», например.

aspfunctions.asp:
<%
    sub doStuff()
        Response.Write("In Do Stuff")
    end sub
%>

В противном случае жерех в aspfunctions.asp рассматривается просто как обычный текст, поэтому, что касается сервера, doStuff никогда не определялся.

Другие советы

У вас должны быть функции asp внутри тега <% %>.

Вы включаете другой файл в оператор if.Это не значит, что он включается динамически, это не так.Он всегда будет включен.

Чтобы увидеть это в действии, попробуйте этот пример:

<%
If 1=0 Then
'We never get here
%>
    <!--#include file="aspFunctions.asp"-->
<%
    dostuff()
End If
dostuff()
%>

Если я правильно помню, для вызовов без возвращаемого значения скобки не нужны (непроверенное решение):

doStuff

Внесите изменения в двух местах:

  1. В aspfunctions.asp напишите «sub doStuff» вместо sub doStuff()
  2. Вызовите функцию как doStuff нет doStuff()
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top