문제

저장할 간단한 데이터 조각(예: 정수 또는 문자열)이 있는 경우 이를 ViewState에 저장하거나 HiddenField 컨트롤을 사용하도록 선택할 수 있습니다.

왜 다른 것보다 하나를 선택하겠습니까?

뷰상태

  • 사용자가 디코딩하기 어렵습니다(불가능하지는 않다고 생각됨). 이는 바람직할 수 있습니다.

숨겨진 필드

  • JavaScript에서 값을 사용할 수 있습니다.

다른 장점과 단점이 있나요?

도움이 되었습니까?

해결책

실제로 ViewState는 실제로 숨겨진 필드에 저장되므로 유일한 차이점은 인코딩입니다.

JavaScript로 값을 조작 할 필요가 없거나이 페이지에서 ViewState를 모두 끄기를 원하지 않는 한 ViewState를 사용하겠습니다. 주로 타사 도구가 있기 때문입니다 (이 같은)는 ViewState를 이해하고 사용자 정의 숨겨진 필드를 이해하지 못합니다.

다른 팁

유지 관리 관점에서 ViewState를 사용하겠습니다.작성해야 할 코드가 적어 소프트웨어의 실패 지점이 줄어듭니다.이는 또한 귀하를 따르는 모든 개발자가 귀하의 솔루션을 더 쉽게 유지 관리할 수 있다는 것을 의미합니다.

이것이 마음에 들지 않으면 페이지에 ViewState에서 값을 검색하기 위한 Facade 역할을 하는 속성 접근자를 작성하세요.나중에 이를 숨겨진 필드로 변환해야 한다고 생각하면 접근자는 코드의 나머지 부분에 대해 해당 스위치를 문제 없이 처리할 수 있습니다.그렇게 하는 이유를 문서로 기록해 두십시오.

ViewState는 페이지 자체에 저장되어 페이지 크기가 증가하고 성능 문제.

또한 응용 프로그램을 구성 할 수 있습니다 서버에 ViewState를 저장하십시오 일부 보안 문제로부터 보호 할 수있는 페이지 자체가 아닌

조미트

숨겨진 필드는 페이지에서 보이지 않으며 view 소스에서 값을 볼 수 있지만 뷰 상태의 값은 인코딩되어 읽을 수 없습니다.

숨겨진 필드 값은 다음 페이지에 게시됩니다. (참고 : Server.Transfer를 사용하여 숨겨진 필드의 가치를 얻으십시오).

ViewState는 귀하가 켜져 있거나 다시 게시하는 페이지에서만 좋습니다. 숨겨진 필드를 사용하면 다음 페이지의 데이터에 액세스 할 수 있습니다 (및 기타 데이터뿐만 아니라 다른 데이터).

string term = ((TextBox)Page.PreviousPage.FindControl("txtSearchTerm")).Text;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top