أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

إن المستعرض الذي تستخدمه غير معتمد

إنك تحتاج إلى تحديث المستعرض لاستخدام الموقع.

التحديث إلى أحدث إصدار من Internet Explorer

PRB: "الحالة عرض المقصود غير صالح" رسالة خطأ عند استخدام Server.Transfer

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

اضغط هنا لرابط المقالة باللغة الانجليزية316920
إخلاء مسؤولية من محتوى قديم في قاعدة المعارف
عن تقديم الدعم التقني لهاو لذلك تظهر هذه المقالة كما هي و لن يتم تحديثها Microsoft تمت كتابة هذه المقالة بخصوص منتجات توقفت
الأعراض
عند استخدام HttpServerUtility.Transfer ("page name" ، true) ، تتلقى رسالة الخطأ التالية:
حالة العرض غير صالحة لهذه الصفحة و وقد تكون تالفة
السبب
تحدث هذه المشكلة بسبب سمة EnableViewStateMac<pages> يتم تعيين عنصر إلى true بشكل افتراضي. عند تعيين هذه السمة إلى "صواب" ، يعمل ASP.NET اختيار مصادقة التي تستخدم خط الهاتف رسالة (MAC) على حالة طريقة عرض الصفحة عندما يتم نشر الصفحة مرة أخرى من العميل. يحدد هذا التدقيق إذا تم تعديل حالة طريقة عرض الصفحة على العميل. لأغراض الأمان، من المستحسن الاحتفاظ هذه السمة تعيين إلى true.

عند استدعاء الأسلوب Server.Transfer وتعيين المعلمة الثانية إلى true الاحتفاظ QueryString ومجموعات نموذج. أحد حقول النموذج هو حقل نموذج __VIEWSTATE المخفية التي تتضمن حالة طريقة عرض للصفحة. تحقق مصادقة الرسائل عرض حالة فشل لأن الاختيار مصادقة الرسالة فقط بالتحقق من كل صفحة. لذلك، بحالة العرض من صفحة الذي يستدعي Server.Transfer غير صحيح على الصفحة الوجهة.

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

الدقة 1

نقل القيم بين صفحات بتمرير الملقم عنصر التحكم إلى صفحات أخرى. للحصول على مزيد من المعلومات، راجع MSDN التالي الوثائق:
قيم عنصر تحكم الخادم التمرير بين الصفحات
http://msdn2.microsoft.com/en-us/library/6c3yckfw(vs.71).aspx
يتطلب هذا إنشاء الخصائص العامة لكل خاصية عنصر التحكم الذي تريد الوصول من الصفحة الوجهة.

إذا كان لديك العديد من عناصر التحكم إذا كنت ترغب في الوصول إلى خصائص عناصر التحكم هذه من صفحة أخرى إمكانية أيضاً تعريف عناصر التحكم هذه كـ المتغيرات العمومية. على سبيل المثال:

Page1.aspx
Public Class Page1    Public WithEvents TextBox1 As System.Web.UI.WebControls.TextBox    'Insert your code here.End Class				
Page2.aspx
            Dim sourcePage As Page1            sourcePage = CType(Context.Handler, WebForm1)            Response.Write(sourcePage.TextBox1.Text)				

الدقة 2

لا تمرير المعلمة الثانية (وهو خاطئة بشكل افتراضي) الاتصال Server.Transfer. على سبيل المثال:
Server.Transfer("<page name>")				
هذا الرمز لا يرسل QueryString "و" حقول النموذج إلى الصفحة التي تسمى. عندما يتم نقل أية بيانات لا يعمل ASP.NET الاختيار مصادقة الرسالة.
معلومات أخرى

خطوات إعادة إنشاء في سلوك

  1. إنشاء صفحة .aspx يسمى WebForm1.aspx ينقل التنفيذ إلى صفحة أخرى. قم بإضافة التعليمات البرمجية التالية إلى WebForm1.aspx:
    <%@ Page language="vb" AutoEventWireup="true" %><html>    <body>	    <form id="WebForm1" method="post" runat="server">      <asp:TextBox id="txtName" runat="server">Your Name</asp:TextBox><br>      <asp:Button id="Button1" runat="server" Text="Submit" OnClick="Button1_Click"></asp:Button>    </form>	  </body></html><script runat=server>Sub Button1_Click(sender As Object, e As System.EventArgs)	Server.Transfer("WebForm2.aspx",true)End Sub</script>					
  2. إنشاء صفحة .aspx آخر باسم WebForm2.aspx ثم قم بإضافة التعليمة البرمجية التالية:
    <%@ Page language="vb" AutoEventWireup="true" %><html>  <body>	    <form id="WebForm2" method="post" runat="server">      <asp:Label id="lblName" runat="server" >Web Form 2</asp:Label>    </form>	  </body></html><script runat=server>Sub Page_Load(sender As Object, e As EventArgs)Dim thisPage As System.Web.UI.PageDim nameTextBox As TextBox	thisPage = CType(Context.Handler, System.Web.UI.Page)	nameTextBox =  CType(thisPage.FindControl("txtName"), System.Web.UI.Control)	lblName.Text = "Your name is '" & nameTextBox.Text & "'."		End Sub</script>					
  3. فتح WebForm1.aspx في المستعرض الخاص بك ثم انقر فوق إرسال.
حالة العرض

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 316920 - آخر مراجعة: 04/19/2007 01:51:46 - المراجعة: 3.2

  • Microsoft ASP.NET 1.0
  • kbmt kbprb kbstate kbwebforms KB316920 KbMtar
تعليقات
0&did=1&t=">p;did=1&t=">did=1&t=">html>