Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C ASP.NET文件上载控制和ModalPopupXtender回发冲突_C#_Asp.net_Web Config_Ajaxcontroltoolkit - Fatal编程技术网

C# C ASP.NET文件上载控制和ModalPopupXtender回发冲突

C# C ASP.NET文件上载控制和ModalPopupXtender回发冲突,c#,asp.net,web-config,ajaxcontroltoolkit,C#,Asp.net,Web Config,Ajaxcontroltoolkit,我目前有一个弹出面板,其中包含一个fileupload控件和一些其他文本框。我想做的是创建一个取消按钮,关闭弹出面板并重新加载页面,以清除文本框和文件上载控件中的数据。我还有一个错误页面,如果用户上传的文件大于15mb,它会抛出错误。问题是,每次我使用Response.RedirectRequest.Url.ToString从服务器端刷新页面时,服务器仍然会获取包含在fileupload控件中的文件,可能会将其放入内存-抱歉,我在这方面做得不好-如果大于15mb,将抛出错误页。我怀疑这是因为任何

我目前有一个弹出面板,其中包含一个fileupload控件和一些其他文本框。我想做的是创建一个取消按钮,关闭弹出面板并重新加载页面,以清除文本框和文件上载控件中的数据。我还有一个错误页面,如果用户上传的文件大于15mb,它会抛出错误。问题是,每次我使用Response.RedirectRequest.Url.ToString从服务器端刷新页面时,服务器仍然会获取包含在fileupload控件中的文件,可能会将其放入内存-抱歉,我在这方面做得不好-如果大于15mb,将抛出错误页。我怀疑这是因为任何回发遇到的文件上传行为。我如何才能实现此关闭和重新加载

代码:

错误页代码:

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从客户端尝试了这一点,但没有成功。它成功地重新加载而不回发到服务器,但不会关闭ModalPopupXtender面板。

如何显示模式弹出扩展程序-通过服务器还是通过客户端代码?在gridviewrowcommand事件中通过服务器。好的,根据中David Johnstone的解释,window.location.reload和window.location.href完全不同,尽管它们都会将您重定向到同一页面。我想到window.location.href作为答案,因为它的行为。在不回发的情况下重新加载页面,并防止文件上载控件执行回发行为,即在页面回发时上载选定的文件。
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);
    }
<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>