2009-12-03 6 views
1

ViewState에서 읽은 한 기사에서 TextBox의 값이 ViewState에 저장되었다고 생각하는 실수에 빠지지 않아야한다는 문장을 보았습니다. 그것은 PostBack 데이터에 저장됩니다.TexBox 값을 다시 게시 할 때? ViewState 또는 데이터를 다시 게시 하시겠습니까?

여기서 내가 이해하는 것은 웹 양식을 다시 게시 할 때 입력 컨트롤 값이 HTTP 요청 본문에 저장된다는 것입니다. Viewstate에는 없습니다. 하지만 내가 아는 한 ViewState 값은 __VIEWSTATE라는 숨겨진 필드에 저장됩니다.

그런 다음 __VIEVSTATE 값이 HTTP POST 요청 본문에 포스트 백 데이터로 게시되지 않는다는 의미입니까? 나에게 무의미한 소리. 나는 그런 시나리오에는 용의 ViewState 메커니즘은 내가보고하고, 다음과 같이 작동 말할 기본적으로 경우 다른 말로

, 그것은 오른쪽 또는 건너 뛰는 일 :

  1. 당신은 빈 텍스트 상자에 값을 입력하고 페이지를 제출

  2. 텍스트 상자의 값은 POST HTTP 요청 본문에 다시 게시됩니다. 서버 측에서 텍스트 상자

  3. 에서이 시점에서 __VIEWSTATE 내부에 아무것도, 텍스트 상자가의 ViewState의 TrackChange 속성이 true로 설정된 페이지

  4. 의하는 OnInit 방법의 기본 값으로 만들어지지 않습니다.

  5. 게시 된 TextBox의 데이터가로드되었습니다. 사용자가 무언가를 입력했기 때문에 TextBox defalut 값과 다르기 때문에이 텍스트 상자의 ViewState는 DIRTY로 표시됩니다.

  6. 텍스트 상자의 새 값이 __VIEWSTATE의 hiddenfeild 지금부터 __VIEWSTATE 숨겨진 필드

  7. 에 기록되어 페이지가 사용자의 브라우저를 가지고로 전송됩니다

  8. TextBox의 마지막 지정된 값을 포함 숨겨진 필드 __VIEWSTATE. 그러나 이번에는 사용자가 입력 할 마지막 값을 입력 할 준비가되었습니다.

감사합니다!

부락의 ozdogan

+0

게시하기 전에 태그를 확인해야합니다. 이제는 시스템에서 작동하는 방식과 작동하는 태그와 같은 쓸모없는 태그가 있습니다. 나는 당신의 대답을 편집했습니다. –

+0

감사합니다. – pencilCake

답변

0

의 ViewState는 서버가 같은 페이지에 대한 여러 개의 요청 전반 상태를 유지할 수있는 페이지의 숨겨진 입력입니다. ViewState는 서버에 의해 유지 관리되므로 서버가 변경하지 않는 한 동일하게 유지됩니다. ViewState는 서버가 자신과 대화 할 수있는 유일한 방법입니다.

예를 들어, 처음에는 TextBox에 값을 넣을 때 ViewState에 아무 것도없는 것 같습니다. 그 이유는 서버가 아직 아무것도 넣지 않았기 때문입니다. TextBox 값이 처음 서버에 도달하면 서버는 모든 후속 요청에서 값을 추적 할 수 있도록 ViewState에 값을 배치합니다.

후속 요청에서 TextBox 값은 ViewState로 인코딩되고 POST 데이터로 서버로 다시 전송됩니다.

관련 문제