[ASP.NET] 상태 유지(ViewState, HiddenField)

Ceing·2025년 3월 11일
0

ASP.NET

목록 보기
5/13
post-thumbnail

ASP.NET에서의 상태 유지

  • HTTP는 무상태 프로토콜임에 따라 기본적으로 새로고침(F5) 시 서버가 갖고 있던 메모리에 있던 데이터를 손실한다.
  • ViewState 혹은 Hidden Field 사용해서 기존 데이터의 상태를 유지시킬 수 있음

1. ViewState

개요

  • 코드 비하인드(.aspx.cs)에서 서버 컨트롤을 작성하다 보면 버튼 클릭 혹은 새로고침과 같은 이벤트가 발생할 시 페이지가 다시 로딩됨.
  • 이때 기존 변수에 있던 데이터가 날라가고 처음 초기값으로 세팅되게됨
  • 만약 페이지가 재로딩 되어도 상태 값을 저장하고싶으면 Page 객체가 제공하는 ViewState 컬렉션을 사용하면 좋음
  • 단, 동일한 페이지 내에서만 ViewState의 생명주기가 유지됨

저장

// ViewState[key] = value;
ViewState["name"] = "kim";
  • ViewState 위와 같이 키 - 값 구조의 저장공간
  • 특정 값을 특정 키에 저장시킬 수 있음

조회

// ViewState[key]
Response.write(ViewState["name"]) // kim 출력
  • 키로 접근하여 값을 꺼낼 수 있음
  • 해당 상태는 유지됨 즉 굳이 따지자면 Stateful임, 서버에서 상태를 관리하므로, 단 해당 페이지 내에서만 유지

2. HiddenField

<asp:HiddenField ID="hfSearchYear" runat="server"/>
  • html에서 제공하는 히든 필드를 asp에서도 제공
  • hfSearchYear에 사용자가 검색한 연도 값을 저장하면 페이지가 새로고침되거나 폼 제출(PostBack) 되어도 값을 유지 가능
profile
이유에 대해 끊임없이 생각하고 고민하는 개발자

0개의 댓글