在未编辑内容时从Summernote表单中获取正确的HTML

时间:2018-03-20 04:19:15

标签: javascript asp.net asp.net-core summernote razor-pages

我正在使用此代码在我的页面上显示summernote编辑器

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>bootstrap4</title>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.9/summernote-lite.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.9/summernote-lite.js"></script>
.
.
.
<textarea id="summernote" name="summernote">@Model.InviteEmailBody</textarea>
                <script>
                    $('#summernote').summernote({
                        tabsize: 4,
                        height: 220
                    });
                    $('#summernote').on('summernote.blur', function () {
                        $('#summernote').html($('#summernote').summernote('code'));
                    });

                    $('#summernote').html(escape($('#summernote').summernote('code')));
                </script>

然后保存到数据库

string str = Request.Form["summernote"];
string htmlEncoded = WebUtility.HtmlEncode(str);
roleToUpdate.InviteEmailBody = htmlEncoded;

当我实际编辑内容时,一切都很好,但是当我不这样做时,str变量中的I fet值有很多

%3Cdiv%3EHello%20

我不确定我实施summernote的方式是否正确或如何解决这个问题..如果有人可以提供帮助我会很感激

1 个答案:

答案 0 :(得分:2)

此垃圾由

生成

$('#summernote').html(escape($('#summernote').summernote('code')));

如果您希望清除textarea(或预设某些文字),可以使用以下语法。第二个参数是您要设置的字符串值:

$('#summernote').summernote('code', '')
$('#summernote').html(escape($('#summernote').summernote('code', '<b>some</b>')));