빌드되고 인코딩된 ViewState의 값을 얻는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1010

  •  08-06-2019
  •  | 
  •  

문제

ViewState의 base64 인코딩 표현을 가져와야 합니다.분명히 이는 요청 수명 주기의 상당히 늦은 시점까지 사용할 수 없습니다. 그래도 괜찮습니다.

예를 들어, 페이지 출력에 다음이 포함되는 경우:

<input type="hidden" name="__VIEWSTATE" 
  id="__VIEWSTATE" value="/wEPDwUJODU0Njc5MD...==" />

가치를 얻으려면 서버 측에서 방법이 필요합니다. "/wEPDwUJODU0Njc5MD...=="

명확히 하자면, PostBack이 아닌 페이지가 렌더링될 때 이 값이 필요합니다.예를 들어현재 사용 중인 ViewState 값을 알아야 합니다. 전송된 내가 그들로부터 돌려받는 ViewState가 아닌 클라이언트에게.

도움이 되었습니까?

해결책

Rex, 내 생각엔 찾기 시작하기에 좋은 곳은 다음과 같은 솔루션입니다. ViewState 압축 -- 클라이언트로 전송되기 전에 서버에서 ViewState를 가져와서 gzip으로 압축합니다.그것이 바로 당신이 원하는 곳입니다.

다른 팁

이것 좀 봐 블로그 게시물 여기서 저자는 ViewState를 생성하기 위한 기본 동작을 재정의하는 방법을 설명하고 대신 이를 서버 Session 객체에 저장하는 방법을 보여줍니다.

ASP.NET 2.0에서 ViewState는 PagestatePersister 클래스의 후손에 의해 저장됩니다.이 클래스는 viewsstate를 저장 및로드하기위한 추상 클래스이며,이 클래스의 두 가지 구현 된 .NET Framework에는 HiddenFieldPagestatePersister 및 SessionPagestatePersister라는 두 개의 구현 된 후손이 있습니다.기본적으로 HiddenFieldPagestatePersister는 ViewState 정보를 저장/로드하는 데 사용되지만 SessionPagestatePersister가 세션 객체에서 ViewState를 작동시키고 저장할 수 있습니다.

비록 그의 코드를 테스트하지는 않았지만, 당신이 원하는 것을 정확하게 보여주는 것 같습니다:포스트백 전에 서버에 있는 동안 ViewState 코드에 액세스하는 방법입니다.

위에 게시된 기사와 유사한 기사를 따라 압축을 활성화했습니다.애플리케이션이 ViewState를 보내기 전에 ViewState에 액세스하는 핵심은 이 메서드를 재정의하는 것입니다.

protected override void SavePageStateToPersistenceMedium(object viewState)

이 재정의 내에서 기본 메서드를 호출한 다음 ViewState를 처리하는 데 필요한 추가 논리를 추가할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top