質問

いくつかの 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

フォームの送信ボタンを押すと、以下のsub dostuff()respons.write( "in do stuff")end subを取得します

Microsoft VBScript ランタイム エラー '800a000d'

私が何を間違っているのかわかる人はいますか?

助けていただければ幸いです

ありがとうダミアンタイプの不一致:'doStuff'

/uat/damien/index.asp、15行目

役に立ちましたか?

解決

aspfunctions.asp ASP が「実行」されるようにタグ内に置く必要があります。例:

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

それ以外の場合は、ASP aspfunctions.asp サーバーに関する限り、単にプレーンテキストとして認識されるため、 doStuff 定義されたことはありません。

他のヒント

<% %> タグ内に asp 関数を含める必要があります。

if ステートメント内に他のファイルを含めています。これは、動的に組み込まれるという意味ではなく、そうではありません。必ず含まれます。

実際の動作を確認するには、このサンプルを試してください。

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

私の記憶が正しければ、戻り値のない呼び出しには括弧は必要ありません(未テストの解決策)。

doStuff

次の 2 か所で変更を加えます。

  1. aspfunctions.asp では、代わりに「sub doStuff」と書きます。 sub doStuff()
  2. 関数を次のように呼び出します doStuff ない doStuff()
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top