我正在尝试将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()'为null或不是对象 @ 15:180 ..切割保护 无辜.. \ Views \ Shared \ Admin.Master 1 1 ilaTraining
答案 0 :(得分:1)
使用行$('.test').ckeditor();
,您尝试将ckeditor应用于具有css类.test
的元素。但在您看来,没有任何输入具有此类。
假设您想将TextArea
变成ckeditor,那么您需要使用this overload添加课程:
<%= Html.TextArea("news", new { @class = ".test" }) %>
或者您也可以通过ID“news”引用TextArea(因为这是您使用表达式Html.TextArea("news")
为您的输入提供的ID)。所以下面的代码也应该有效:
$('#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>
作为旁注:在使用ASP.NET MVC时,如果包含脚本或css,则应使用Url.Content
帮助程序。
答案 1 :(得分:0)
如果您按ID引用元素,则应使用#
,例如$('#news').ckeditor();
查看ID Selector和Class Selector的jQuery API的不同之处。
答案 2 :(得分: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适配器有bug,可能尝试不同的CKEditor版本?
您可以尝试使用更新版本的jQuery。您正在使用的版本(jquery-1.3.2)于2009年2月发布。它已有3年半的历史。
问题是否出现在所有浏览器中?