LocalStorage 不允许我保存富文本字段

LocalStorage does not allow me to save rich text fields

我正在尝试将表单数据保存到 localStorage 中。对于像文本框这样的常规 HTML 字段,这非常有效。但是我有几个富文本字段似乎无法保存它们的数据。

字段的 Razor 标记(我使用的是 MVC)

<div class="form-group">
    @Html.LabelFor(model => model.Actions, htmlAttributes: new { @class = "control-label col-md-2" })
    @Html.TextAreaFor(model => model.Actions, new { @class = "form-control", rows = "4" })
    @Html.ValidationMessageFor(model => model.Actions, "", new { @class = "text-danger" })
</div>

HTML 以上生成的标记:

    <div class="form-group">
        <label class="control-label col-md-2" for="Actions">Actions</label>
        <textarea class="form-control" cols="20" id="Actions" name="Actions" rows="4">
</textarea>
        <span class="field-validation-valid text-danger" data-valmsg-for="Actions" data-valmsg-replace="true"></span>
    </div>

这是从本地存储中保存/检索的代码。我在其他领域使用完全相同的方法并且效果很好。

//save
localStorage.setItem('Actions', document.getElementById('Actions').value);

//restore
var Actions = localStorage.getItem('Actions');
document.getElementById('Actions').value = Actions;

我试过使用 document.getElementById('Actions').textContent 而不是 .value - 这似乎可以正确保存,但我仍然无法恢复文本。当我查看 localStorage 对象时,虽然它只在我的操作字段中报告以下文本:"<p><br></p>",除非使用 .textContent,在这种情况下我会看到类似 <p>Test text<br></p>

我正在使用 Summernote 来提供富文本功能,我认为这可能是问题的原因,但我不确定该尝试什么。控制台完全没有报错。

我使用以下代码解决了这个问题

$('#Actions').summernote('code', Actions);

代替

document.getElementById('Actions').value = Actions;

这会将字段中的 html 代码直接放入带有所有格式等的 summernote 文本区域。我还能够使用 .actions.innerhtml 无效)