1

我正在尝试将 CKEditor 集成到 MVC 应用程序中。据我所知,我真正要做的就是。

将以下内容添加到我的母版页。

<script type="text/javascript" src="../../ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="../../ckeditor/adapters/jquery.js"></script>
<script type="text/jscript" src="../../Scripts/jquery-1.3.2.js"></script>

然后在我看来。我有以下代码:

<script type="text/javascript">        
    $(document).ready(function() { $('#news').ckeditor(); });
</script>

<fieldset>
    <legend>Fields</legend>
        <p>
            <label for="title">Title:</label>
            <%=Html.TextBox("title")%>
            <%= Html.ValidationMessage("title", "*") %>
        </p>
        <p>
            <label for="news">News:</label>
            <%=Html.TextArea("news")%>
            <%= Html.ValidationMessage("news", "*") %>
        </p>
        <p>
            <label for="publishedDate">Publication Date:</label>
            <%= Html.TextBox("publishedDate") %>
            <%= Html.ValidationMessage("publishedDate", "*") %>
        </p>
        <p>
            <input type="submit" value="Create" />
        </p>
</fieldset>

请记住,我并不是想让它真正做任何明智的回发。只是为了首先实际渲染。有人能准确指出我做错了什么吗?

哦,如果它有助于任何 VS 也会给我以下警告:

警告 1 更新 JScript IntelliSense 时出错:..剪切以保护无辜..\ckeditor\ckeditor.js:'getFirst()' 为空或不是对象@ 15:180 ..剪切以保护无辜..\Views\ Shared\Admin.Master 1 1 ilaTraining

4

3 回答 3

1

使用该行$('.test').ckeditor();,您尝试将 ckeditor 应用于具有 css 类的元素.test。但在您看来,没有一个输入有这个类。

假设你想把你TextArea变成一个ckeditor,所以你需要添加这个重载的类:

<%= Html.TextArea("news", new { @class = ".test" }) %>

或者您也可以通过 id "news" 引用您的 TextArea(因为这是您使用 expression 为输入提供的 id Html.TextArea("news"))。所以下面的代码也应该工作:

$('#news').ckeditor();

因为您正在尝试使用 ckeditor 的 jQuery 适配器,所以您必须确保在加载 jQuery 之后加载 ckeditor。所以脚本包含的正确顺序应该如下:

<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery-1.3.2.js %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/ckeditor/ckeditor.js %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/ckeditor/adapters/jquery.js %>"></script>

附带说明:Url.Content在使用 ASP.NET MVC 时包含脚本或 css 时应使用帮助程序。

于 2012-10-07T15:13:56.667 回答
0

如果您通过 id 引用元素,则应使用#,例如$('#news').ckeditor();

查看ID SelectorClass Selector在 jQuery API 中的区别。

于 2012-10-07T15:29:02.967 回答
0

有几件事要看:

尝试不使用 jQuery 适配器来查看编辑器是否加载。

消除:

<script type="text/javascript" src="../../ckeditor/adapters/jquery.js"></script>

代替:

<script type="text/javascript">        
    $(document).ready(function() { $('#news').ckeditor(); });
</script>

和:

<script type="text/javascript">        
    $(document).ready(function() { CKEDITOR.replace( 'news' ); });
</script>

有几个版本的 jQuery 适配器有错误,也许尝试不同的 CKEditor 版本?


您可以尝试使用更新版本的 jQuery。您使用的版本 ( jquery-1.3.2 ) 于 2009 年 2 月发布。它已有 3 1/2 年历史。


所有浏览器都会出现这个问题吗?

于 2012-10-08T04:38:26.117 回答