2013-12-20 4 views
1

내 DNN 모듈 페이지에는 일부 div 및 LinkButton 만 포함됩니다. div의 내용은 jQuery AJAX를 사용하여 채워집니다. 버튼은 업로드해야하는 서버에 파일을 게시하는 데 사용됩니다. "잘못된 포스트 백 또는 콜백 인수"오류가 발생합니다.잘못된 포스트 백 또는 콜백 인수 - 버튼을 제외한 서버 컨트롤 없음 (DNN 모듈)

내가 지금까지 읽은 것부터 이벤트 유효성 검사를 해제 할 수 없다고 가정하면 javascript를 사용하여 페이지의 서버 컨트롤 내용을 수정하지 않아도됩니다. 그렇다면 사용자에게 RegisterForEventValidation을 모두 등록해야합니다. 해당 컨트롤에 대한 가능한 포스트 백 데이터를 미리 지정하십시오. 수정중인 서버 컨트롤이 없기 때문에 필자의 경우에 적용되는지 확실하지 않습니다. AJAX를 통해 나머지 콘텐트가로드 될 때 파일을 업로드하는 방식에 문제가 있습니까?

<div id="divTop"></div> 
<div id="divMain"></div> 
<div id="divError" style="display: none" class="ui-widget-content ui-state-error"></div> 
<div id="divAddFile"></div> 
<div id="divSearchNow" class="ui-widget-header divControl" style="position: absolute; display: none; z-index: 999;"></div> 
<asp:LinkButton ID="btnUploadFiles" runat="server" OnClick="btnUploadFiles_Click" 
Style="display: none;">Upload Files</asp:LinkButton> 

HTML 파일 제어 AJAX/스크립트를 통해 모두 렌더링되고 버튼이 표시되어, 사용자가 업로드 할 수 있도록한다. 그러나 페이지에서 포스트 백을 시도 할 때 오류가 발생합니다.

대부분의 예제에서는 javascript를 통해 조작되는 드롭 다운을 언급 했으므로 모든 동적 값에 RegisterForEventValidation이 사용되었습니다. 내 상황에 어떻게 적용 할 수 있습니까?

나는 거의 AJAX를 통해 렌더링 된 페이지에서 파일 업로드를 위해 취하고있는 접근법에 대한 제안에 대해서도 열려 있습니다. 미리 감사드립니다.

+0

나는 UpdatePanel에 linkbutton을 넣으려고했다. 비슷한 문제가있어서 이런 식으로 해결했다. – Trapias

답변

0

여기에서 가장 중요한 문제는 많은 문제없이 포스트 백과 AJAX를 동시에 사용할 수 없다는 것입니다. 서버가 웹 페이지를 발행 할 때 동일한 내용이 Postback에 반환 될 것으로 기대합니다. 예를 들어 빈 div를 보내면 AJAX로 채운 다음 다시 서버에 게시하면 서버 오류가 발생합니다. 이 문제를 해결하는 데는 몇 가지 방법이 있지만 내 경험으로는 거의 일관되게 작동하지 않습니다.

애플리케이션을 AJAX (fully service oriented) 또는 완전 페이지 방식으로 작성해야합니다.

서비스 지향 - AJAX 기능을 사용하여 파일을 업로드 할 수있는 서버 측 컨트롤을 만듭니다.

페이지 방법 - 서버 측에서 div를 채워야합니다. 클라이언트의 내용을 변경하려면 AJAX가 아닌 전체 포스트 백을 사용해야합니다.

업로드 할 때 div의 콘텐츠가 필요없는 경우 업데이트 패널을 사용하면됩니다. 즉, 버튼을 클릭 할 때 div를 게시해야하는 경우에도 동일한 오류가 발생합니다. div 콘텐츠가 필요하지 않은 경우 버튼 만 둘러싼 업데이트 패널을 래핑하면 해당 버튼 클릭 만 다시 게시되고 오류가 제거 될 수 있습니다.