1

jQuery와 ASP.NET을 사용하여 버튼이 포함 된 대화 상자를 표시합니다. 몇 가지 수색 작업을 마친 후 대화 상자에 버튼을 추가하여 더 많은 자바 스크립트를 추가하여 양식에 대화 상자를 추가했습니다.DOM을 조작 할 때 ASP.NET ViewState 유효성 확인

var dlg = $('#ctl00_ctl00_PageContent_PageContent__pnlPopup').dialog({ 
        autoOpen: false, 
        height: 180, 
        width: 500, 
        modal: true, 
        draggable: true 
       }); 
     dlg.parent().appendTo($('form:first')); // without this, controls in the dialog are non-functional 

내가 대화 상자를 열 때까지이 잘 작동을 닫은 다음 상위 페이지에있는 ComboBox 나하는 LinkButton 같은 컨트롤을 사용하려고합니다. 어떤 시점에서 ViewState 유효성 검사 오류가 발생합니다.

Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.

이 방법이 있습니까? 나는 왜 그것이 일어나는지를 절반으로 봅니다. jQuery가 문서의 구조를 변경하고 있지만 이것이 어떻게/왜 이것이 ViewState에 영향을 미치는지 확실하지 않습니다.

+0

해결 방법을 찾으셨습니까? 비슷한 문제가 있습니다. – earthling

답변

0

페이지의 유일한 변경 사항은 질문에 코드를 추가하는 것입니까? 대화 상자가 열렸을 때 서버를 호출하고 있습니까?

양식 태그 및 인코딩 된 ViewState를 보유하는 숨김 필드와 같이 필수 요소를 삭제하거나 손상시키지 않으면 클라이언트에서 DOM을 조작하여 ViewState를 올바르게 복원하는 기능에 영향을 미치지 않아야합니다.

Fiddler와 같은 웹 프록시에서 실패한 원시 HTTP 요청을 보았습니까?

+0

버튼이 작동하도록 양식 내의 해당 컨트롤을 이동하여 페이지의 구조 만 변경하고 있습니다. 나는 Fiddler를 보게되어 기쁘 겠지만, 나는 무엇을 찾을 지 정말로 모른다. 어떤 포인터? – Echilon

+0

만들어진 HTTP 요청을 살펴보십시오. 그들은 적시에 발행되고 있습니까? POST 데이터에 __VIEWSTATE 필드가 포함되어 있습니까? – RickNZ