解析KendoEditor TextArea中的特殊字符

时间:2017-10-18 20:31:54

标签: javascript c# kendo-ui

当我在由KendoEditor小部件呈现的textarea中插入特殊字符时,我遇到了问题。我已按以下方式配置了我的小部件:

function configureRequestNotesEditor() {
$("#notes").kendoEditor({
    resizable: {
        content: true
    },
    pasteCleanup: {
        all: true,
        css: true,
        keepNewLines: true,
        msAllFormatting: true,
        msConvertLists: true,
        msTags: true,
        none: false,
        span: false
    },
    tools: [
        "bold", "underline", "insertUnorderedList", "insertOrderedList", "indent", "outdent"
    ]
});

};

当我将数据发送到我的api时,我使用javascript函数escape(),当我从api中检索它时,调用javascript函数unescape()。我输入textarea字段的文本如下:

Send to James in UW ASAP.  See attached files.  How long is this field?
300
The amount should be <any amount you can think of.

保存数据然后渲染回UI后,将以下内容打印到屏幕

<p>Send to James in UW ASAP. See attached files. How long is t his field?</p><p>300</p><p>The amount should be &lt;any amount you can think of.</p>

问题是,如何以与保存相同的方式将数据转换回来?我做错了什么来防止这种情况?另外,我忘了提到在C#的后端我在将文本存储到数据库之前使用HttpUtility.HtmlDecode(randomText)

1 个答案:

答案 0 :(得分:2)

我也遇到了剑道编辑器这个问题。但是我使用ASP.NET包装器,所以我将提供处理它的方式。希望它有所帮助。

在我的编辑器中,我设置了

.Encode(false) 

并在表单提交的Action方法中设置了

[ValidateInput(false)]

有了这两个补充,我不必逃避任何角色。 当然,这样我在数据库中保存了格式化文本,当我向用户显示数据时,显然需要格式化文本。