当页面在asp.net中具有查询字符串时,AjaxFileUpload控件不起作用

时间:2015-03-23 04:33:05

标签: asp.net .net-4.0 query-string ajaxcontroltoolkit asyncfileupload

我在button页面上有一个.aspx,可以打开所选项目的popupupload images

ListEdit.aspx

<asp:Button ID="btnListingImageUpload" runat="server" Text="Upload Images" 
                                   OnClientClick="basicPopup()"/>

使用Javascript:

 function basicPopup() {
             var QuoteId = document.getElementById('<%= hdnQuoteIDForListing.ClientID%>').value;
             var IsPrep = document.getElementById('<%= hdnIsPrep.ClientID%>').value;
             alert(IsPrep);
             popupWindow = window.showModalDialog('ListingImageUpload.aspx?QuoteID=' + QuoteId + '&IsPrep=' + IsPrep, 'popUpWindow', 'height=400,width=600,left=200,top=250,resizable=0');
             return false;
         }

弹出页面上的AjaxFileUpload控件

<cc1:AjaxFileUpload ID="AjaxFileUpload2" ThrobberID="myThrobber" ContextKeys="fred" AllowedFileTypes="jpg,jpeg" MaximumNumberOfFiles="10" runat="server" OnUploadComplete="AjaxFileUpload1_UploadComplete1"

OnClientUploadComplete =“onClientUploadCompleteFront”/&gt;

当我click button时,它会在弹出页面中打开包含page控件和AJAXFileUpload的{​​{1}}弹出窗口。当我点击包含querystring控件的弹出页面的“上传”按钮时,会出现以下错误:

AjaxFileUpload

但是,当使用session而不是querystring时,它可以正常工作!

我用谷歌搜索了 this link ,但我无法解决它。我在JavaScript runtime error: Sys.ArgumentException: Cannot deserialize. The data does not correspond to valid JSON. Parameter name: data 中只有AJAXControlToolKit.dll(仅),而不是源文件和其他二进制文件。

注意: 请仅使用bin folder建议解决方案。原因是,此弹出窗口的多个实例将在时间打开。因此,无法使用querystring变量。

帮助感谢!

2 个答案:

答案 0 :(得分:0)

您可以使用Telerik之类的应用程序对de .dll进行反编译,然后对代码应用更改并重新编译。

答案 1 :(得分:0)

这是一个众所周知的问题,当AjaxFileUpload回发它会获取你的页面URL并将其附加到它自己的.query字符串(contextkey和guid)的末尾。如果您的网页网址尚未包含任何查询字符串,则此方法可以正常工作 如果确实如此,那么您最终会得到一个包含两个问号的网址,这会损坏您的最终查询字符串值,从而阻止上传工作。

选中此Known Issue