كيفية استخدام أسلوب Server.Transfer

ملخص

من ميزات صفحة الملقم النشطة (ASP) المعلومات المقدمة مع الإصدار 5.0 من خدمات معلومات إنترنت (IIS) أسلوب تحويل لكائن الملقم المضمنة ASP.

هذا الأسلوب الجديد بدلاً من استخدام أسلوب Response.Redirect لنقل إلى صفحة أخرى، ويسمح بنقل ASP المضمنة والكائنات خطأ إلى صفحة أخرى. وبالإضافة إلى ذلك، النقل تجري على الملقم بدلاً من فرض المستعرض لإعادة التوجيه إلى صفحة جديدة.

مزيد من المعلومات

عندما يتم استدعاء الأسلوب Server.Transfer، يتم إنهاء تنفيذ الصفحة الأولى ويبدأ تنفيذ الصفحة الثانية. إذا بدأ الكتابة إلى المخزن المؤقت استجابة الصفحة الأولى، الصفحة الثانية يلحق بالمخزن المؤقت بدلاً من استبدالها. إذا كان التخزين المؤقت على، يمكنك تعديل رؤوس HTTP بملف ASP الذي يتم تحويله إلى. في حالة إيقاف تشغيل التخزين المؤقت، رؤوس HTTP غير قابل للتعديل بملف ASP الذي يتم تحويله إلى، إلا إذا تم إرسال أي محتوى بآسيا والمحيط الهادئ حتى الآن. بالإضافة إلى ذلك، نقل متعددة يمكن أن يسمى بالتتابع، وبالتالي تسلسل الصفحات معا.

يتم فقط البيانات التي تم نقلها إلى صفحة ASP ثاني ASP المبنية-في كائنات وقيم الكائن خطأ ASP من الطلب الأول. لا تتوفر أية متغيرات تم تعريفها في الصفحة ASP الأولى في الصفحة الثانية من آسيا والمحيط الهادئ.

عند نقل إلى صفحة في تطبيق آخر، يتضمن كائنات التطبيق والدورة المعلومات من التطبيق الأصلي. وبناء على ذلك، يتم التعامل مع صفحة ASP الذي يتم تحويله إلى كجزء من التطبيق الأصلي.

مثال

الصفحات الأمثلة التالية توضح كيف يمكن استخدام أسلوب Server.Transfer. في هذا المثال، تحتوي صفحة البداية نموذجين، واحد باستخدام أسلوب HTTP POST والآخر باستخدام أسلوب HTTP GET. استخدم الصفحتين نفس الصفحة الثانية التي يكشف أسلوب HTTP وينقل إلى صفحة ثالثة مختلفة لكل أسلوب استخدام. سبب استخدام أسلوب النقل، لا يزال يتم تعبئة "كائن طلب" ويتم عرض النتائج الصحيحة من الصفحة الأولى على الصفحة الثالثة المعنية.

  1. نسخ التعليمة البرمجية التالية في آسيا والمحيط الهادئ وحفظها ك "page1.asp" (بدون علامتي الاقتباس):
    <html><body>
    <h3>Step 1 - Form Page</h3>
    <table border="1">
    <tr>
    <th>POST</th>
    <td>
    <form action="page2.asp" method="POST">
    <input type="text" name="Name">
    <input type="submit" value="Submit">
    </form>
    </td>
    <tr>
    </tr>
    <th>GET</th>
    <td>
    <form action="page2.asp" method="GET">
    <input type="text" name="Name">
    <input type="submit" value="Submit">
    </form>
    </td>
    </tr>
    </table>
    </body>
    </html>

  2. حفظ التعليمات البرمجية التالية ك "page2.asp" (بدون علامتي الاقتباس):
    <% @LANGUAGE="VBSCRIPT" %><html>
    <body>
    <h3>Step 2 - Transfer Page</h3>
    <%
    Select Case UCase(Request.ServerVariables("REQUEST_METHOD"))
    Case "POST"
    Server.Transfer "page3a.asp"
    Case "GET"
    Server.Transfer "page3b.asp"
    Case Else
    Response.Write "An unknown HTTP verb was used."
    End Select
    %>
    </body>
    </html>

  3. حفظ التعليمات البرمجية التالية ك "page3a.asp" (بدون علامتي الاقتباس):
    <% @LANGUAGE="VBSCRIPT" %><h3>Step 3a - POST Results</h3>
    <p>Hello <% = Request.Form("Name") %></p>
    </body>
    </html>

  4. حفظ التعليمات البرمجية التالية ك "page3b.asp" (بدون علامتي الاقتباس):
    <% @LANGUAGE="VBSCRIPT" %><h3>Step 3b - GET Results</h3>
    <p>Hello <% = Request.QueryString("Name") %></p>
    </body>
    </html>

ملاحظة: صفحات الأخيرين غير صفحات HTML كاملة. هذا لأن كلا الصفحتين تلحق باستجابة المخزن المؤقت الذي تم تشغيله على الصفحة الثانية.

لمحاولة هذا المثال، حفظ كافة الصفحات لمجلد ويب باستخدام "البرنامج النصي" تمكين الوصول واستعراض "page1.asp".
خصائص

رقم الموضوع: 219294 - آخر مراجعة: 09‏/01‏/2017 - المراجعة: 1

تعليقات