ASP.NET - ການສະໜອງ ViewState

ຜ່ານການສະໜອງViewState (ສະຖານະຄະຕິ) ໃນຟອມ Web, ທ່ານສາມາດຫຼຸດລົງຈຳນວນລະບົບການຂັບເຄື່ອງຫຼາຍຢ່າງ.

ການສະໜອງ 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=" />
.....some code
</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 ໄດ້ເພີ່ມຖານຄົນລັບໃນຕົວພັນ, ເພື່ອຄວາມສາມາດຮັກສາ View State.)