使用Request.Files并从POST更改为GET而不重新加载页面?

时间:2011-11-04 22:15:46

标签: c# asp.net request

我想知道我的架构是否有问题,或者我是否需要快速修复。

我的页面上有以下内容:

<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);

不幸的是,这对我不起作用了。我不希望重新加载页面时发生闪烁(除了重新加载时出现的一些代码问题)。

这里有什么其他选择?如果我使用UpdatePanel包装UploadDashboardDecorationZone,则Request.Files将为0。

是否存在常见的快速代码修复方法?或者我在理解文件上传过程的工作原理时遗漏了哪些内容?

感谢。

1 个答案:

答案 0 :(得分:1)

我不知道在页面更改时绕过“flash”的方法,除非您使用Ajax进行调用,而根本不需要重新加载页面。