1

当我在页面上有一个 HTMLEditorExtender(输入了 HTML)并尝试使用 AJAX AsyncFileUpload 控件上传文件时,有时会收到验证错误:

在此处输入图像描述

我想我已经把它缩小了——它只在上传是在回发之后抛出这个错误——在文本框中输入了 html。

这是一个例子:

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Button ID="Button1" runat="server" Text="PostBack" />
<asp:TextBox ID="txtBannerHTML" runat="server" Height="130px" Width="100%" TextMode="MultiLine" />
<asp:HtmlEditorExtender ID="txtBannerHTML_HtmlEditorExtender" runat="server" DisplaySourceTab="True"
    Enabled="True" TargetControlID="txtBannerHTML">
</asp:HtmlEditorExtender>
<asp:AsyncFileUpload ID="AsyncFileUpload3" runat="server" />

重现:

  1. 在文本框中输入 html。

  2. 点击回发按钮。

  3. 尝试上传图片。

我确实在 HTMLEditorExtender 上启用了消毒剂。

任何人都可以复制这个吗?

如何让两个控件一起工作?

4

1 回答 1

1

尝试在客户端处理 AjaxFileUpload 控件的 uploadStarted 事件并强制对 HtmlEditorExtender 扩展器的 html 进行编码:

<script type="text/javascript" >
function uploadStarted(sender, args){
    var editor = $find("<%= txtBannerHTML_HtmlEditorExtender.ClientID %>");
    editor._editableDiv_submit();
}
</script>

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Button ID="Button1" runat="server" Text="PostBack" />
<asp:TextBox ID="txtBannerHTML" runat="server" Height="130px" Width="100%" TextMode="MultiLine" />
<asp:HtmlEditorExtender ID="txtBannerHTML_HtmlEditorExtender" runat="server" DisplaySourceTab="True"
    Enabled="True" TargetControlID="txtBannerHTML">
</asp:HtmlEditorExtender>
<asp:AsyncFileUpload ID="AsyncFileUpload3" runat="server" OnClientUploadStarted="uploadStarted" />
于 2013-03-09T10:03:56.467 回答