我正在使用Bootstrap Wysiwyg Editor。它看起来很棒,并将我的文本和插入的图像添加到内容区域。
我只需要将内容保存到数据库中,当用户从下拉列表中加载模板名称时,我需要从数据库中填充编辑器。
我尝试$('#editor').html()
但不确定如何将此数据发送到服务器
注意:使用ASP.Net MVC
答案 0 :(得分:3)
(我不知道这是不是最好的方式,但它有效)
考虑一个简单的模型:
public class Contact
{
public string Notes { get; set; }
}
我正在使用一个简单的jquery脚本来获取所见即所得的内容并将其放入隐藏的输入中。
当用户点击“保存”按钮时,我会自动执行此操作。
这是JS:
<script language=javascript>
$(function () {
$('#NotesWysiwyg').wysiwyg();
$('#btnSave').bind('click', function () {
$("#Notes").val($("#NotesWysiwyg").html().replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'));
});
});
HTML内容:
<div id="NotesWysiwyg"style="height:166px; width:395px; border:1px solid lightgray;display:table-cell"></div>
@Html.HiddenFor(contact => contact.Notes)
<button id="btnSave" type="submit">Save</button>
在服务器端:
// Workaround : Encode WYSIWYG HTML
if (model.Notes != null)
model.Notes = WebUtility.HtmlDecode(model.Notes);
答案 1 :(得分:1)
使用ajax保存数据(反之亦然,以便加载)
$.ajax({ type: "POST", url: your_url, data: $('#editor').html(), success: success, dataType: dataType });
答案 2 :(得分:1)
要将内容发送到服务器进行保存,看起来很简单,只需通过$(“#editor”)。html()获取数据并将其发送到服务器端。
要将数据加载到编辑器,请执行以下操作:
$("#editor").html("<div><ul><li>demo</li></ul></div>")
请勿将转义的内容添加到编辑器中:
$("#editor").html("<div><ul><li>demo</li></ul></div>")
大多数服务器端视图都会转义输出,但编辑器无法接受转义格式。
希望这有帮助。
答案 3 :(得分:1)
我只是使用了一个隐藏的textarea,我在表单提交中从编辑器复制了html。
我还使用了data属性来提供目标输入名称,因此您可以在同一页面上使用此方法和多个编辑器。
编辑Html:
<div id="editor" name="editor" data-target="content" class="form-control wysiwyg mt-lg">*<?php fill the value on loading ?>*</div>
Hidden Textarea Html:
<textarea type="text" class="hidden" name="content" id="content"></textarea>
提交按钮html:
<button type="submit" class="btn btn-danger copyeditor">Save</button>
Js:
$(".copyeditor").on("click", function() {
var targetName = $("#editor").attr('data-target');
$('#'+targetName).val($('#editor').html());
});
css:
.hidden {
display: none !important;
visibility: hidden !important;
}
答案 4 :(得分:0)
在尝试了一些选项(加载数据)之后,我找到了一个解决方案。
var shortdescrip = STRING1;
var findInit = '<';
var reInit = new RegExp(findInit,'g');
shortdescrip = shortdescrip.replace(reInit, '<');
var findOut = '>';
var reOut = new RegExp(findOut, 'g');
shortdescrip = shortdescrip.replace(reInit, '<').replace(reOut,'>');
$("#div1").html(shortdescrip);
您必须将div的id替换为div,并将STRING1替换为要加载的字符串。 我希望有所帮助。