ckeditor.js:219 Uncaught TypeError:无法设置undefined的属性'dir'

时间:2016-05-15 06:07:42

标签: asp.net-mvc-4 ckeditor

我在我的项目中安装了 ckeditor的逻辑上传器并且安装没有问题。我有以下控制器:

 public class Default1Controller : Controller
{
    //
    // GET: /Default1/
    Context _db = new Context();
    [HttpGet]
    public ActionResult Index()
    {
        return View();
    }
    [HttpPost]
    public ActionResult Index(content model)
    {
        _db.tbl_Content.Add(model);
        _db.SaveChanges();
        return View();
    }
}

和我的内容模型:

 public class content
{
    [Key]
    public int id { get;set; }
    public string text { get; set; }
}

我的强类型索引视图:

    @model ckeditor.Models.content
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Index</h2>

@using (Html.BeginForm()) {
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>content</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.text)
        </div>
        <div class="editor-field">
            @Html.TextAreaFor(model => model.text)
            @Html.ValidationMessageFor(model => model.text)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")

<script src="~/Scripts/ckeditor/ckeditor.js"></script>
<script src="~/Scripts/ckeditor/adapters/jquery.js"></script>

<script>
    $(function () {

        $('#text').ckeditor();
    });
</script>
}

但我的@html.TextAreaFor()上没有ckeditor 我该怎么办? enter image description here

2 个答案:

答案 0 :(得分:3)

尝试设置CKEDITOR_BASEPATH变量:

<script>
    var CKEDITOR_BASEPATH = '/Scripts/ckeditor/';
</script>

请参阅文档here

答案 1 :(得分:0)

对于其他有此问题的人(因为它到现在为止仍是最新版本),如果您在解决方案中自托管了CKEditor脚本(例如,对于经典的ASP.NET应用程序),而您没有在CKEditor文件夹中具有该插件的所有本地化文件,这可能会导致此问题发生。

例如,我们的en.js文件夹中只有/CKEditor/lang/文件,而该错误是在同时使用英语和丹麦语作为其浏览器语言的用户时发生的。 CKEditor尝试自动将编辑器的语言设置为丹麦语,并尝试加载/CKEditor/lang/da.js文件(该文件不存在(导致404错误))。如此处原始问题所示,浏览器控制台显示404错误,试图加载/lang/fa.js语言文件,但无济于事。将以下内容添加到config.js文件中可以解决我们的问题:

config.language = 'en';

setting config.language确保将编辑器的语言设置为英语,而不是自动检测到。