【问题标题】:CKEditor on ASP.NET MVC - how to edit a documentASP.NET MVC 上的 CKEditor - 如何编辑文档
【发布时间】:2014-02-02 19:12:52
【问题描述】:

我找到了很多关于如何在 ASP.NET MVC 上设置 CKEditor 的教程,但它们主要集中在如何创建文档上。我不仅需要创建文档,还需要编辑文档。

我使用一个基本的剃须刀动作来创建一个文本区域,

@Html.TextAreaFor(model => model.Description)

以及用于设置编辑器的基本 javascript。

CKEDITOR.replace('Description', {
        language: 'cs'
    });

但是,我的编辑器加载为空白。总是,即使 model.Description 已经包含一些文本。添加 setData 函数只会使富文本编辑器消失并使用 HTML 加载 textarea(转义,因为我检查了源代码)。我的问题是:

  1. 如何在编辑器中设置要编辑的文本?
  2. 难道没有更有效的方法或更好的编辑器来处理这个问题吗?

【问题讨论】:

  • 您在 JavaScript 控制台中看到任何错误吗?你可能需要使用CKEDITOR.replace('#Description',...。使用# 符号通过 id 来寻址元素。
  • 不,javascript 控制台中没有错误,如果我添加 (#) 符号,编辑器根本不会加载(没有它,它至少有时会加载并且为空)
  • 作为旁注,ASP.NET 将拒绝任何看起来像 HTML 或 JavaScript 的东西被发布到服务器。确保您允许该属性将其值传递给服务器,否则您将收到很多错误。

标签: javascript asp.net-mvc ckeditor


【解决方案1】:

你不需要#。你用jquery吗?试试这个:

$(document).ready(function() {
    // Get the description element to check it exists and that it has a value
    var d = $('#Description');
    alert(d.val(););

    // Create the editor
    CKEDITOR.replace('Description', {
        language: 'en'
    });
});

如果你不使用 jquery,试试这个:

function replaceCke(){
    // Get the description element to check it exists and that it has a value
    var d = document.getElementById("Description");
    alert(d.value);

    // Create the editor
    CKEDITOR.replace('Description', {
        language: 'en'
    });
}

if(window.addEventListener) {
    window.addEventListener('load', replaceCke, false);
} else {
    window.attachEvent('onload', replaceCke);
}

【讨论】:

  • 非常感谢,您的回答帮助我理解了问题。我在 $(document).ready 之外调用了 CKEDITOR.replace,因此没有(可能)加载内容。谢谢你:)
猜你喜欢
  • 2019-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-19
  • 1970-01-01
相关资源
最近更新 更多