Asp.net CKEditor通过将单引号转换为双引号来中断自定义.NET标记

Asp.net CKEditor通过将单引号转换为双引号来中断自定义.NET标记,asp.net,data-binding,syntax,ckeditor,Asp.net,Data Binding,Syntax,Ckeditor,应客户要求,我们刚刚将一个大型站点的定制CMS系统从FCKEditor 2.x升级到CKEditor 3.5.3 在ItemTemplate中,我有一个自定义UserControl标记,其中的属性由数据绑定填充,如下所示: <my:Viewer runat="server"> <ItemTemplate> <my:CustomTag runat="server" ImageUrl='<%# DataBinder.

应客户要求,我们刚刚将一个大型站点的定制CMS系统从FCKEditor 2.x升级到CKEditor 3.5.3

在ItemTemplate中,我有一个自定义UserControl标记,其中的属性由数据绑定填充,如下所示:

<my:Viewer runat="server">
    <ItemTemplate>
        <my:CustomTag runat="server"
            ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ImageUrl") %>' />
    </ItemTemplate>
</my:Viewer>

所以,关键是上面的方法很有效。但是,当HTML放入最新的CKEditor中时,CKEditor会将ImageUrl属性更改为使用双引号而不是单引号。将其更改为双引号后,会在.aspx页面上导致解析错误。将:
“ImageUrl”更改为“ImageUrl”
是可行的,但这对于我们的客户来说并不理想,因为客户需要更新大型CMS系统中存在的每个页面。所以,我问这个问题,希望有人知道一种切换CKEditor的方法,在默认情况下在HTML属性中使用单引号,而不是双引号,以减少我的客户机需要做的工作量


我只想简单地更改配置类型,而不是修补编辑器等。

这应该可以满足您的需要
从这里开始拍摄

为避免编辑或更改特殊字符: 在源代码视图中切换:

CKEDITOR.instances.TEXT.on( 'mode', function(ev) {
      if ( ev.editor.mode == 'source' ) {
                        var str=ev.editor.getData();
         str=str.replace(/&amp;/g, "&").replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, "\"");
         ev.editor.textarea.setValue(str);
      }
});
CKEDITOR.instances.TEXT.on('mode',function(ev){
如果(ev.editor.mode=='source'){
var str=ev.editor.getData();
str=str.replace(//&;/g,“&”).replace(//g,“>”).replace(//g,”).replace(//g,“我想说我提到的解决方案是太多的工作,这只是唯一的答案…只是为了结束这个问题。或者,如果我能找到一个方法,我会撤回这个问题。谢谢rqmedes的尝试…在得到你的回答之前,我实际上已经忘记了这个问题


:)

造成问题的不是HTML实体。而是CKEditor实际上将属性周围的单引号改为双引号……我想这是为了“一致性”或“最佳实践”,但当属性中有服务器端双引号时,将.NET属性更改为双引号会中断编译。不过,感谢您第一个尝试回答:)
var html=CKEDITOR.instances.TEXT.getData()
html=html.replace(/&amp;/g, "&").replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, "\"");