웹 양식 ViewState
ASP.NET Web Forms - ViewState 유지
Web Forms에서 개체의 ViewState를 유지 관리하면 많은 코딩 작업을 줄일 수 있습니다.
Maintain ViewState
클래식 ASP에서는 양식이 제출되면 모든 양식 값이 지워집니다. 많은 정보가 포함된 양식을 제출했는데 서버에서 오류를 반환했다고 가정해 보겠습니다. 정보를 수정하려면 양식으로 돌아가야 합니다. 뒤로 버튼을 누르면 무슨 일이 일어날까요... 모든 양식 값이 지워지고 모든 것을 다시 시작해야 합니다! 사이트에서 ViewState를 유지 관리하지 않습니다.
ASP .NET에서는 양식이 제출되면 해당 양식이 양식 값과 함께 브라우저 창에 나타납니다. 어떻게? 이는 ASP .NET이 ViewState를 유지 관리하기 때문입니다. ViewState는 페이지가 서버에 제출될 때의 페이지 상태를 나타냅니다. 이 상태는 <form runat="server"> 컨트롤이 있는 모든 페이지에 숨겨진 필드를 배치하여 정의됩니다. 소스코드는 다음과 같습니다.
<input type="hidden" name="__VIEWSTATE "
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />
....some code
</form>
ViewState 유지는 ASP.NET Web Forms의 기본 설정입니다. ViewState를 유지하지 않으려면 .aspx 페이지 상단에 <%@ Page EnableViewState="false" %> 지시문을 포함하거나 컨트롤에 EnableViewState="false" 속성을 추가하세요.
아래 .aspx 파일을 참고해주세요. 이는 "오래된" 작동 방식을 보여줍니다. 제출 버튼을 클릭하면 양식 값이 사라집니다.
Instance
<!DOCTYPE html> <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이 ViewState를 유지하기 위해 양식에 숨겨진 필드를 추가한 것을 볼 수 있습니다.
Instance
<script runat="server"> Sub submit(sender As Object, e As EventArgs) lbl1.Text="Hello " & txt1.Text & "!" End Sub </script> <!DOCTYPE html> <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>
인스턴스 실행 »
온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요