كيفية الحصول على قيمة بنيت المشفرة ViewState?

StackOverflow https://stackoverflow.com/questions/1010

  •  08-06-2019
  •  | 
  •  

سؤال

أنا بحاجة إلى الاستيلاء على ترميز base64 تمثيل ViewState.ومن الواضح أن هذا لن تكون متاحة حتى وقت متأخر نسبيا في الطلب على دورة الحياة التي على ما يرام.

على سبيل المثال ، إذا كان إخراج الصفحة تشمل:

<input type="hidden" name="__VIEWSTATE" 
  id="__VIEWSTATE" value="/wEPDwUJODU0Njc5MD...==" />

أريد طريقة على جانب الملقم للحصول على قيمة "/wEPDwUJODU0Njc5MD...=="

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

هل كانت مفيدة؟

المحلول

ريكس, وأظن مكان جيد للبدء في البحث حلول ضغط ViewState إنهم الاستيلاء ViewState على الملقم قبل أن يتم إرسالها إلى العميل و gzipping والمساعد ذلك.هذا هو بالضبط حيث تريد أن تكون.

نصائح أخرى

ترى هذا بلوق وظيفة حيث يصف المؤلف طريقة تجاوز السلوك الافتراضي لتوليد ViewState وبدلا من ذلك يظهر كيفية حفظه على جلسة عمل ملقم الكائن.

في ASP.NET 2.0, ViewState هي التي أنقذت سليل PageStatePersister فئة.هذه الفئة هي فئة مجردة الحفظ والتحميل ViewsState ، هناك نوعان من تنفيذ أحفاد من هذه الطبقة .Net Framework اسمه HiddenFieldPageStatePersister ، SessionPageStatePersister.بشكل افتراضي HiddenFieldPageStatePersister يستخدم حفظ/تحميل ViewState المعلومات ، ولكن يمكننا بسهولة الحصول على SessionPageStatePersister إلى العمل ، حفظ ViewState في الدورة كائن.

على الرغم من أنني لم الاختبار رمز له ، على ما يبدو لاظهار بالضبط ما تريد:وسيلة للوصول إلى ViewState رمز في حين لا يزال على الملقم قبل إعادة النشر.

أنا تمكين ضغط التالية من المواد المماثلة لتلك التي سجلت أعلى.مفتاح الوصول إلى ViewState قبل أن يرسل التطبيق كان تجاوز هذا الأسلوب ؛

protected override void SavePageStateToPersistenceMedium(object viewState)

يمكنك استدعاء الطريقة الأساسية داخل هذا التجاوز ثم إضافة ما منطق إضافية تحتاج إلى التعامل مع ViewState.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top