ASP.NET - الحفاظ على ViewState
- الصفحة السابقة نماذج WebForms
- الصفحة التالية مجال النص WebForms
من خلال الحفاظ على ViewState (حالة العرض) للأشياء في نموذج الويب، يمكنك توفير الكثير من العمل البرمجي.
الحفاظ على ViewState (حالة العرض)
عند تقديم نموذج classic ASP، سيتم حذف جميع قيم النموذج. تخيل أنك قدمت نموذجًا يحتوي على الكثير من المعلومات، وعاد الخادم بكلمة خطأ. ستحتاج إلى العودة إلى النموذج وإصلاح المعلومات. ستضغط على زر الرجوع، وماذا سيحدث... سيتم حذف جميع قيم النموذج، وستحتاج إلى بدء كل شيء من جديد. لن يحافظ الموقع على ViewState.
عندما يتم تقديم نموذج ASP.NET، يتم عرض النموذج مرة أخرى مع جميع قيم النموذج. كيف يتم ذلك؟ هذا بسبب أن ASP.NET يحافظ على ViewState. سيشير ViewState إلى حالة الصفحة عند تقديمها إلى الخادم. من خلال وضع مجال مخفي في كل صفحة في عنصر <form runat="server">، يمكننا تعريف حالة الصفحة. يمكن أن يكون الكود المصدر مثل هذا:
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" /> .....الكود </form>
الحفاظ على ViewState هو الإعداد الافتراضي لـ ASP.NET Web Form. إذا لم تكن ترغب في الحفاظ على ViewState، فأضف تعليمات في أعلى صفحة .aspx: <%@ Page EnableViewState="false" %>، أو أضف خاصية إلى أي عنصر: EnableViewState="false".
الرجاء النظر في ملف .aspx أدناه. يظهر هذا الطريقة القديمة للعمل. عند النقر على زر التأكيد، سينتهي قيمة النموذج:
<html> <body> <form action="demo_classicasp.aspx" method="post"> اسمك: <input type="text" name="fname" size="20"> <input type="submit" value="Submit"> </form> <% dim fname fname=Request.Form("fname") If fname<>"" Then Response.Write("Hello " & fname & "!") End If %> </body> </html>
هذه هي الطريقة الجديدة لـ ASP .NET. عند الضغط على زر الارسال، لن تختفي قيم النموذج:
<script runat="server"> Sub submit(sender As Object, e As EventArgs) lbl1.Text="Hello " & txt1.Text & "!" End Sub </script> <html> <body> <form runat="server"> اسمك: <asp:TextBox id="txt1" runat="server" /> <asp:Button OnClick="submit" Text="Submit" runat="server" /> <p><asp:Label id="lbl1" runat="server" /></p> </form> </body> </html>
اعرض هذا المثال (انقر على "عرض المستند الأصلي" في الصندوق على اليمين، حيث يمكنك رؤية أن ASP.NET قد أضاف مجال مخفي إلى النموذج، مما يسمح بصيانة ViewState.)
- الصفحة السابقة نماذج WebForms
- الصفحة التالية مجال النص WebForms