【问题标题】:AJAX Control Toolkit HTMLEditor styling being partially stripped on page_loadAJAX 控件工具包 HTMLEditor 样式在 page_load 上被部分剥离
【发布时间】:2023-03-28 15:08:01
【问题描述】:

所以我有一个 HTMLEditor,它正确地将 HTML 保存到数据库中,如下所示:

    <span style="color: #ff0000; font-size: 36pt; font-weight: bold;">This is a test</span><span style="color: #ff0000;"><br />
 <br />
 </span><span style="color: #0000ff;">New Line. New ckolor</span>

这会导致显示为“这是一个测试”的红色粗体大文本和显示为“新行。新 ccolor”的较小蓝色粗体文本。 (都是数据库字段中的一行,堆栈溢出正在奇怪地格式化上面的代码”

保存后,我刷新页面,并检查该数据库字段中是否有内容,如果有,请将其分配给文本框:

            if (!string.IsNullOrEmpty(type.TaskDescriptionText))
        {
            tbTaskDescription.Content = type.TaskDescriptionText;
        }

我可以在这里设置一个断点并检查。 TaskDescriptionText 属性实际上仍然具有完整的样式行:style="color: #ff0000; font-size: 36pt; font-weight: bold;"

它被分配给 TaskDescription 编辑器的 .Content 属性,但不知何故,当页面完成加载时,第一个跨度仅保留 'style="color: #ff0000;"' ,并且 'style="color: #0000ff;"' 第二个。换句话说,样式颜色之后的任何内容都会被剥离,并且不会作为样式添加到元素上。

我搜索了整个解决方案,但找不到与此框内容混淆的任何其他服务器端,因此一旦分配,它就不应该改变!除非 html 编辑器本身在做什么?

【问题讨论】:

  • 另外,我想指出,作为测试,我放置了一个从同一数据库字段读取的

标签: asp.net ajaxcontroltoolkit


【解决方案1】:

如果我是你,我会在将文本保存到数据库之前对文本进行 HTMLEncode,并在从 db 读取文本时对文本进行 HTMLDecode。这样可以省去很多麻烦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多