2011-11-04 3 views
2

나는 건축물에 문제가 있는지, 아니면 바로 해결이 필요한지 알아 내려고하고있다.Request.Files로 작업하고 페이지를 다시로드하지 않고 POST에서 GET으로 변경 하시겠습니까?

나는 내 페이지에 다음과 같습니다

<div ID="UploadDashboardDecorationZone"> 
    <fieldset id="UploadDashboard"> 
     <legend>Upload Dashboard</legend> 
     <telerik:RadUpload ID="UploadDashboardSelector" Runat="server" Width="235px" AllowedFileExtensions=".xml" MaxFileInputsCount="1" ControlObjectsVisibility="None" /> 
    </fieldset>   
    <div class="BottomButton"> 
     <telerik:RadButton ID="SubmitUploadDashboardButton" Runat="Server" Text="Upload" OnClientClicked="CloseUploadDashboard" /> 
    </div> 
</div> 

사용자들이 업로드 할 파일을 선택하고, 그 후에는 SubmitUploadDashboardButton를 누릅니다.

protected void Page_Init(object sender, EventArgs e) 
{ 
    if (Request.Files.Count > 0) HandleUploadedFile(); 
} 

이 모두 잘 작동 :

나는 다음 서버 측 코드가 있습니다. 업로드 된 파일에 응답하고 내 페이지에서 변경 사항을 확인합니다. 유일한 문제는 내 페이지의 요청 HTTP 메소드를 POST가 아닌 GET으로 남겨 두었습니다. 즉, 사용자가 페이지를 새로 고침하면 문제가 발생합니다.

Page.Response.Redirect(Page.Request.Url.ToString(), true); 

불행하게도,이 더 이상 나를 위해 작동하지 않습니다

이전에, 나는이 문제를 해결하려면 다음 코드 조각을 사용했다. 나는 다시로드 할 때 발생하는 깜박임을 원하지 않는다.

다른 옵션은 무엇입니까? UploadDashboardDecorationZone을 UpdatePanel로 감싸는 경우 Request.Files는 0으로 나옵니다.

일반적인 빠른 수정 코드가 있습니까? 아니면 파일 업로드 프로세스가 어떻게 작동하는지에 대한 더 깊은 이해가 부족합니다.

감사합니다.

+0

DevExpress를 사용하여 한 번 읽은 메소드는 숨겨진 IFRAME에 POST하는 업로드 방법을 제공하므로 기본 페이지를 새로 고치는 관점에서 "투명"합니다. 어쩌면이 방법으로 Telerik 컨트롤을 구성 할 수 있습니까? –

+0

이 방법에 대해 약간의 독서를해야 할 것입니다. 제안 해 주셔서 감사합니다! :) –

+0

최근 프로젝트에서는 HTML5 File API를 사용하여 XmlHttpRequest 객체 (AJAX라고도 함)를 통해 파일을 업로드하는 데 성공했습니다.이 API는 전체 페이지 POST도 없음). 하지만 현대적인 브라우저가 필요합니다. –

답변

1

페이지를 새로 고침 할 필요가없는 Ajax을 사용하여 전화를 걸지 않으면 페이지가 변경 될 때 "플래시"를 피하는 방법을 모르겠습니다.

+1

버튼에서 플래시로 괜찮습니까? 나는 Page.Response.Redirect라고 불렀을 때 두 번째 플래시가 좋지 않다. 거기에 대해 불쌍히 생각해서 죄송합니다. :) –

관련 문제