当我在由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 <any amount you can think of.</p>
问题是,如何以与保存相同的方式将数据转换回来?我做错了什么来防止这种情况?另外,我忘了提到在C#的后端我在将文本存储到数据库之前使用HttpUtility.HtmlDecode(randomText)
。
答案 0 :(得分:2)
我也遇到了剑道编辑器这个问题。但是我使用ASP.NET包装器,所以我将提供处理它的方式。希望它有所帮助。
在我的编辑器中,我设置了
.Encode(false)
并在表单提交的Action方法中设置了
[ValidateInput(false)]
有了这两个补充,我不必逃避任何角色。 当然,这样我在数据库中保存了格式化文本,当我向用户显示数据时,显然需要格式化文本。