نماذج ويب ASP.NET - الحفاظ على حالة العرض
يعتمد ViewState على نموذج الويب. قم بتعيين runat = "server" في سمة التحكم في نموذج الويب. سيتم إرفاق عنصر التحكم هذا بسمة مخفية _ViewState. يقدم لك هذا القسم كيفية احتفاظ ASP.NET بحالة ViewState.
من خلال الحفاظ على حالة عرض الكائنات في نموذج الويب الخاص بك، يمكنك توفير الكثير من أعمال البرمجة.
في ASP الكلاسيكي، عند إرسال نموذج، يتم مسح كافة قيم النموذج. لنفترض أنك أرسلت نموذجًا يحتوي على الكثير من المعلومات وقام الخادم بإرجاع خطأ. سيكون عليك العودة إلى النموذج لتصحيح المعلومات. تضغط على زر الرجوع وماذا يحدث... يتم مسح جميع قيم النموذج وعليك أن تبدأ كل شيء من جديد! الموقع لا يحتفظ بحالة العرض الخاصة بك.
في ASP.NET، عند إرسال نموذج، يظهر النموذج في نافذة المستعرض مع قيم النموذج. كيف؟ وذلك لأن ASP .NET يحتفظ بحالة العرض الخاصة بك. تشير حالة العرض إلى حالة الصفحة عند إرسالها إلى الخادم. يتم تعريف هذه الحالة عن طريق وضع حقل مخفي في كل صفحة باستخدام عنصر التحكم <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. إذا كنت لا تريد الاحتفاظ بـ ViewState، فقم بتضمين التوجيه <%@ Page EnableViewState="false" %> في أعلى صفحة .aspx، أو قم بإضافة السمة EnableViewState="false" إلى أي عنصر تحكم.
الرجاء مراجعة ملف aspx أدناه. إنه يوضح طريقة العمل "القديمة". عند النقر على زر الإرسال، ستختفي قيم النموذج:
<html><body><form action="demo_classicasp.aspx"method="post">اسمك: <input type="text" name="fname" size="20"><input type="submit" القيمة ="إرسال"></form><%dim fnamefname=Request.Form("fname")If fname<>""thenResponse.Write("Hello " & fname & "!")End إذا%></body></html>
إليك طريقة ASP .NET الجديدة. عند الضغط على زر الإرسال، لا تختفي قيم النموذج:
انقر فوق عرض المصدر في الإطار الأيمن للمثيل وسترى أن ASP.NET أضاف حقلاً مخفيًا إلى النموذج للحفاظ على ViewState.
<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>