Latest web development tutorials

ASP.NET의 ViewState

의 ViewState (뷰 상태)에서 웹 폼에서 개체를 유지하여 코딩을 많이 절약 할 수 있습니다.


유지의 ViewState (뷰 상태)

양식이 제출 될 때 고전적인 ASP에서, 모든 양식 값이 지워집니다. 당신은 많은 정보와 양식을 제출하고 서버가 오류를 반환하자. 폼 수정에 반환해야합니다. 당신은 무슨 일이 있었는지 ...... 모든 양식 값이 모든 것을 시작해야, 클리어 한 다음 뒤로 단추를 클릭! 사이트는 당신의 ViewState를 유지하지 않습니다.

양식이 제출 될 때 ASP .NET은에, 함께 양식 값이 양식이 브라우저 창에 함께 표시됩니다. 그것을 어떻게? ASP .NET 사용자의 ViewState를 유지하기 때문이다. 페이지의 상태를 표시 할 때의 ViewState는 서버로 전송됩니다. 이 상태는 <양식 RUNAT = "서버"> 숨겨진 필드 정의의 위치를 ​​제어와 모든 페이지를 통해이다. 다음과 같이 소스 코드는 다음과 같습니다

<form name="_ctl0" method="post" action="page.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE"
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />

.....some code

</form>

viewstate가를 유지하는 것은 ASP.NET 웹 폼의 기본 설정입니다. 당신이 지침에 포함 된 .ASPX 페이지 상단의의 ViewState를 유지하지 않으려면 <% @ 페이지의 EnableViewState = "false"를 %는>, 또는 컨트롤에 속성의 EnableViewState =를 "false"로 추가 할 수 있습니다.

다음에서 .aspx 파일을보십시오. 그것은 "오래된"작동 모드를 보여줍니다. 당신이 제출 버튼을 클릭하면 양식 값이 사라집니다 :

<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를 유지하는 형태로 숨겨진 필드를 추가 한 볼, 소스 코드를 보려면 오른쪽 프레임의 예를 클릭합니다.

<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>

데모 >>