Will.Bi

导航

 

TinyMCE是一个强大的在线文档编辑器,并且有丰富的插件扩展。以下是在Asp.Net MVC3中使用TinyMCE的步骤。

1,首先在官方网站http://www.tinymce.com/ 下载最新的压缩包, 我下载的是基于JQuery的库。解压后有2个文件夹,jscripts里面的内容是需要包含在项目里面的,sample里面是例子。

2,新建一个MVC工程,建立一个Model,例子如下,需要使用TinyMCE的字段,类型设为ntext,MaxLength,加入UIHintAttribute,参数为我们建立的编辑器Template名。

Article Model
 1 using System.ComponentModel.DataAnnotations;
 2 using System.ComponentModel.DataAnnotations.Schema;
 3 
 4 namespace MVC4Sample.Models
 5 {
 6     [Table("Article")]
 7     public class Article
 8     {
 9         [Key]
10         [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
11         public int Id { get; set; }
12 
13 
14         public string Title { get; set; }
15 
16         [Column(TypeName = "ntext")]
17         [MaxLength]
18         [UIHint("tinymce_jquery_full")]
19         public string Content { get; set; }
20     }
21 }

3,新建一个Controller和View,不需要在Article的controller和view中做什么修改。

4,在View\Shared中新建一个文件夹EditorTemplates,放入代码中提到的tinymce_jquery_full.cshtml。需要注意的是,MVC4的_Layout.cshtml中,JS会延迟加载,而我们需要提前加载需要的JS,主要是Jquery库。

tinymce_jquery_full.cshtml
@*
Don't forget to reference the JQuery Library here, inside your view or layout.
<script src="@Url.Content("~/Scripts/jquery-x.x.x.min.js")" type="text/javascript"></script>
*@

<script src="@Url.Content("~/Scripts/tiny_mce/jquery.tinymce.js")" type="text/javascript"></script>

<script type="text/javascript">

    (function(){ 

      $(function() { 
      
          $('#@ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty)').tinymce({

            // Location of TinyMCE script
            script_url: '@Url.Content("~/Scripts/tiny_mce/tiny_mce.js")',
            theme: "advanced",
            
            height: "500",
            width: "790",
            verify_html : false,
            plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave",
            
            // Theme options
            theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
            theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
            theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
            theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft,codehighlighting,netadvimage, insertimage",
            theme_advanced_toolbar_location : "top",
            theme_advanced_toolbar_align : "left",
            theme_advanced_statusbar_location : "bottom",
            theme_advanced_resizing : false,
            
            // Example content CSS (should be your site CSS)
            content_css : "@Url.Content("~/Scripts/tiny_mce/css/content.css")",
            convert_urls : false,
            
            // Drop lists for link/image/media/template dialogs
            template_external_list_url : "lists/template_list.js",
            external_link_list_url : "lists/link_list.js",
            external_image_list_url : "lists/image_list.js",
            media_external_list_url : "lists/media_list.js"

        });

      });

    })();

</script>

@Html.TextArea(string.Empty, /* Name suffix */
    ViewData.TemplateInfo.FormattedModelValue /* Initial value */
)

 

运行即可看到结果。

posted on 2012-11-13 14:51  Will.Bi  阅读(425)  评论(0)    收藏  举报