تشمل آسيا والمحيط الهادئ الكلاسيكية
-
02-07-2019 - |
سؤال
أحاول فصل بعض منطق 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 () أدناه.
خطأ وقت تشغيل 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
قم بإجراء التغييرات في مكانين:
- في aspfunctions.asp، اكتب "sub doStuff" بدلاً من ذلك
sub doStuff()
- استدعاء الدالة باسم
doStuff
لاdoStuff()