يمكنك حفظ الكثير من الترميز من خلال الحفاظ على حالة العرض من الكائنات في نموذج ويب.
الحفاظ على حالة العرض
عند تقديم نموذج في ASP الكلاسيكية، يتم مسح جميع القيم النموذج. افترض أنك قدمت نموذج مع الكثير من المعلومات وخادم يعود مع وجود خطأ. سيكون لديك للذهاب إلى النموذج وتصحيح المعلومات. النقر فوق الزر مرة أخرى، وما يحدث ....... يتم مسح جميع القيم النموذج، وسيكون لديك لتبدأ من جديد! وقال إن الموقع لا تحافظ على حالة العرض الخاص بك.
عند تقديم نموذج في ASP .NET، يظهر النموذج في نافذة المتصفح جنبا إلى جنب مع كل القيم النموذج. كيف ذلك؟ وذلك لأن ASP .NET يحافظ على حالة العرض الخاص بك. يشير إلى حالة العرض وضع الصفحة عند إرسالها إلى الملقم. يتم تعريف الوضع من خلال حقل مخفي وضعت على كل صفحة مع <شكل RUNAT = "الخادم"> السيطرة. مصدر يمكن أن ننظر بشيء من هذا القبيل:
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE"
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />
.....some code
</form>
الحفاظ على حالة العرض هو الإعداد الافتراضي لنماذج ويب ASP.NET. إذا كنت تريد أن NOT الحفاظ على حالة العرض، وتشمل التوجيه <٪ @ صفحة EnableViewState = "كاذبة"٪> في الجزء العلوي من صفحة. aspx أو إضافة سمة EnableViewState = "كاذبة" لأية رقابة.
نظرة على ملف aspx التالية. ومما يدل على "old" طريقة للقيام بذلك. عند النقر على زر إرسال، سوف تختفي قيمة النموذج:
مثال
<html>
<body>
<form action="demo_classicasp.aspx" method="post">
Your name: <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. عند النقر على زر إرسال، فإن قيمة النموذج لا تختفي:
مثال
انقر عرض المصدر في الإطار الأيمن من المثال أن نرى أن 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">
Your name: <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>
شاهد المثال »