2011-09-20 5 views
0

UpdatePanel에 문제가 있습니다. 사용자가 패널 안의 버튼을 클릭하면 비동기 포스트 백이 생기고 jQuery 탭 세트가 다시 초기화됩니다. (성공적인 첫 비동기 포스트 백 후) 나는 UpdatePanel 외부의 버튼이나 다른 컨트롤을 사용하려고하면, 나는 다음과 같은 오류 얻을 : 나는이 문제 해결에 대한 다른 모든 이동하는 방법을 정말 확실a- 동기화 다시 게시 후 잘못된 ViewState

An error has occured on page: http://server/details.aspx for user: at IP: 192.168.0.92 
The state information is invalid for this page and might be corrupted. at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) 
    at System.Web.UI.ViewStateException.ThrowViewStateError(Exception inner, String persistedState) 
    at System.Web.UI.HiddenFieldPageStatePersister.Load() 
    at System.Web.UI.Page.LoadPageStateFromPersistenceMedium() 
    at System.Web.UI.Page.LoadAllState() 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
    at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
    at System.Web.UI.Page.ProcessRequest() 
    at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) 
    at System.Web.UI.Page.ProcessRequest(HttpContext context) 
    at ASP.details_aspx.ProcessRequest(HttpContext context) 
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) Invalid viewstate. 
    Client IP: 192.168.0.92 
    Port: 1707 
    Referer: http://server/details.aspx 
    Path: /server/details.aspx 
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322) 
    ViewState: /wEPDwULLTEwMTkxMjEwNTNkZBSW/poBumnzl2Hp6YECMfZitwnKh80rC7JEaLc28HAh,z02m+uZDqc2t7iURUsMo+CuP5x4r/SPERT297Zo+E1XXWjvhDLPLpwJMqHic8o0GS89zNWWT5HUTr8DkPJgRKqGADUP0cXLYZ+seXS2JdxB85T6LsnrZwgBZC8hKDZPFlQtPIc9U0d5WCRQJFXRIHr3YLlQmTdXqcZBd09TrgA3y+hxpMJ4pq4kFU7wA9sZ0P+YFOzCNtIadsoXxZGzz+PjePHLPu+mwBAgLdI4mXYtA5MdgrH6OaM3eZaS9dZC5vpHWdC3b+ni3SkytO1FLhR4IUCNKIh+ApVtVNbfMkYAAAiXqSJKitUpZrqb3VM/EGsoZAK63iVAIpIBWkT/TeNU49UfofDChcMdsL/MLX2LEAMPG1BLhmcxIVPWJzGdCldPk5FDie6m2Wm5SRah3oMpcltVUv0wjGOo04TLOmrb/vw5iXyXAPC0eHch60Bm2gGCxY/PKTa9A/mWIyXwnVT2Ma0mi6i9gkvsDyWVN/u/ckNQrM4yN31y1vFwXG3jP+2euwDcZ41eK4md7FM6tBFZOvR7RV2mSI4BvJliLihfcje9IEEv9/X1zuz73RZrEYKVuCN/gFJNwRDJgYia2sCo1oE3NQn5guMFk+YSg9xzMgEQ0SmejhqnfughBrnbzhFWNXbCHz/hTkeBFYRRx/k3uTDpffW4qsVTL+VyZr3b8QKLZELNCrx2wqVSpup0/Mux65WDJykvcMbOq+... 
The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or a non-white space character among the padding characters.  at System.Convert.FromBase64String(String s) 
    at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) 
    at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) 
    at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) 
    at System.Web.UI.HiddenFieldPageStatePersister.Load() 

을 아니에요 다른 탭에있는 updatepanel 내부에서 작동하는 것 같습니다.

+0

ViewState 또는 페이지를 수정하는 HttpModule이 있습니까? 아마 압축 모듈일까요? – onof

+0

문제를 확실하게 재현하는 * 최소 * 작업 예제를 만들 수 있습니까? – Heinzi

+0

죄송합니다. 인트라넷에 많이 묶여 있지만 모듈을 차단하는 모듈은 없습니다. – Echilon

답변

0

어쩌면 당신은 즉석에서 새로운 상태의 컨트롤을 생성합니다.이 컨트롤에는 viewstate가 있고 그 이유는 무엇입니까?

1

몇 가지 이유로 인해 발생할 수 있습니다.

가장 중요한 것은 새로 고침을 할 때 Ajax 컨트롤이 주 페이지 viewstate를 대체하는 자체 viewstate를 작성한다는 것입니다.

내가 아약스 출력 후

   Response.End 

을 추가하는 등 다른 포럼에서 읽은 몇 가지 해결책이 있습니다. Response.End를 사용할 때 ThreadAbortException을 처리해야 할 수도 있습니다.

다른 사용자가 제안한 두 번째 방법은 Ajax 양식 요소에서 Runat을 제거하는 것입니다.

Ajax 포스트 백 URL이 데이터를 가져 오기 위해 별도의 페이지로 이동하는 경우에도 발생할 수 있습니다. 이 경우 URL을 동일한 페이지로 변경할 수 있습니다.

+0

이상하게도 사실은 전자 메일을 보내고 토글은 ASP의 Label : visible 속성입니다. – Echilon

관련 문제