我的页面上有一个AJAX HtmlEditorExtender,可以选择上传图片,但是当我尝试上传图片时,我收到以下错误:
JavaScript运行时错误:Sys.ArgumentException:无法反序列化。数据与有效的JSON不对应。 参数名称:data
我已经对错误做了一些研究,看到有人说这可能是因为我使用查询字符串将参数传递到页面。我这样做是因为我删除了参数并且错误仍在发生,是否还有其他原因会发生此错误?
完全相同的Html Editor Extender适用于我的另一个页面。
我的HTML和C#如下:
<asp:HtmlEditorExtender ID="HtmlEditorExtender3" runat="server" TargetControlID="txtAdminAddNote" OnImageUploadComplete="MyHtmlEditorExtender_ImageUploadComplete">
<Toolbar>
<asp:InsertImage />
</Toolbar>
</asp:HtmlEditorExtender>
<asp:TextBox runat="server" ID="txtAdminAddNote" TextMode="MultiLine" Width="96%" Height="200px"></asp:TextBox>
protected void MyHtmlEditorExtender_ImageUploadComplete(object sender, AjaxFileUploadEventArgs e)
{
string filePath = "~/Images/" + Path.GetFileName(e.FileName);
var ajaxFileUpload = (AjaxFileUpload)sender;
ajaxFileUpload.SaveAs(MapPath(filePath));
e.PostedUrl = Page.ResolveUrl(filePath);
}
答案 0 :(得分:1)
这个问题是solved here(我引用):
根据您的描述和错误消息,我认为您有 最初不可见的Panel控件中的HtmlEditorExtender控件。
对于上传图像文件,HtmlEditorExtender和AjaxFileUpload都有 同样的工作原则。
如果是,请查看以下链接。
问题是HtmlEditorExtender
控件偶然(它的父控件设置为false)不可见在上传的一个组成部分,因此没有正确处理。
将HtmlEditorExtender
控件移到任何可能不可见的父控件之外,并测试此问题是否仍然存在。