문제

컨트롤을 동적으로 추가하는 페이지가 있습니다. 컨트롤 상태가 데이터베이스에서 검색되고 있으며 컨트롤은 Postback의 페이지에 다시 구매됩니다. 사용자는 UI를 통해 컨트롤을 추가/삭제할 수 있습니다. 두 사용자가 동일한 페이지에 있고 한 명이 추가/컨트롤을 추가하면 다른 사용자는 다음에 제어 상태를 수정하려고 할 때 viewstate 오류를 얻습니다.

"ViewState를로드하지 못했습니다. ViewState가로드되는 제어 트리는 이전 요청 중에 ViewState를 저장하는 데 사용 된 제어 트리와 일치해야합니다. 예를 들어, 컨트롤을 동적으로 추가 할 때, 사후 기간 동안 추가 된 컨트롤은 초기 요청 동안 추가 된 컨트롤의 유형 및 위치와 일치해야합니다. "

페이지를 그릴 때 하나의 컨트롤 세트를 사용하고 다른 사용자에 의해 제어 상태가 수정 되었기 때문에 Postback에서 다른 컨트롤 세트를 얻기 때문입니다.

나는 오류와 왜 발생하는지 이해하지만 여기서 뭔가 빠진 것 같아요. 컨트롤을 동적으로 추가하고 컨트롤 상태를 수정하는 동시 사용자를 처리 할 수있는 페이지를 갖는 방법이 있습니까?

도움이 되었습니까?

해결책

당신은 분리해야합니다 현재 사용자 상태에서 주인, 또는 글로벌, 상태. Postback에서 데이터베이스의 마스터 정의를 기반으로 제어 트리를 구축하는 대신 현재 사용자와 관련된 캐시 컨트롤 트리를로드하십시오. ViewState 재구성을 지나면 조정 프로세스를 시작하십시오. 자동이거나 다른 UI를로드하여 사용자가 참여할 수 있도록 다른 UI를로드 해야하는지 여부는 질문의 범위를 벗어납니다.

요점은 마스터 마스터의 "지점"을 사용자 당 기준으로 유지하고보다 통제 된 방식으로 커밋하고 읽어야한다는 것입니다.

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