我目前有一个弹出式面板,其中包含文件上载控件和其他一些文本框。我想要做的是创建一个取消按钮,关闭弹出式面板并重新加载页面以清除文本框和文件上载控件中的数据。我还有一个错误页面,如果用户上传的文件大于15mb,它将抛出。问题是,每次我使用Response.Redirect(Request.Url.ToString())
从服务器端刷新页面时,服务器仍然会获取fileupload控件中包含的文件(也许把它放在内存中? - 抱歉我很擅长这个 - )并且如果大于15mb则抛出错误页面。我怀疑这是因为它遇到的任何回发的文件上载行为。我怎样才能实现这种接近并重新加载?
代码:
...
<td>
<label>Upload: </label>
</td>
<td>
<asp:FileUpload ID="fileUpload" runat="server" CssClass="fileupload"/>
</td><table>
<br />
<asp:Button ID="btnSave" ValidationGroup="UpdateSlide" runat="server" Text="Save" CssClass="modal-buttons" OnClick="btnSave_Click"/>
<asp:Button ID="btnCancel" CausesValidation="false" runat="server" Text="Cancel" CssClass="modal-buttons" OnClick="btnCancel_Click"/>
<br />
代码背后:
protected void btnCancel_Click(object sender, EventArgs e){
Response.Redirect(Request.Url.toString());
}
错误页码:
protected void Page_Load(object sender, EventArgs e)
{
HtmlMeta meta = new HtmlMeta();
string path = Request.UrlReferrer.ToString();
Literal str = new Literal();
meta.HttpEquiv = "Refresh";
meta.Content = "5;url=" + path;
str.Text = "<h1 style='color: red; font-size: xx-large;'>IIS Error 404.13</h1><h2 style='font-size: large'>File upload too large!</h2><p style='color: midnightblue;'>Maximum allowed file size: <b style='color:red;'>15mb</b></p><p>Redirecting...</p>";
this.Page.Controls.Add(str);
this.Page.Controls.Add(meta);
}
的Web.config:
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="15728640"></requestLimits>
</requestFiltering>
</security>
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="13"/>
<error statusCode="404" subStatusCode="13" prefixLanguageFilePath="" path="/Error Pages/Error_A.aspx" responseMode="Redirect"/>
<!--<error statusCode="404" prefixLanguageFilePath="" path="/Error Pages/ERROR_B.aspx" responseMode="Redirect"/>-->
</httpErrors>
我也尝试使用javascript window.location.reload()
从客户端进行此操作,但无济于事。 (它成功重新加载而不回发到服务器,但没有关闭 modalpopupextender 面板。)