none
Criando um editor html com asp.net mvc 4? RRS feed

  • Pergunta

  • tenho um site que tem uma área para cadastrar alguns artigos e uso o ckeditor para colocar meu texto e salvar no banco o html, mas estou migrando esse site para mvc e queria saber de vc´s qual componente que posso usar no lugar do ckeditor?

    Abraço.

    sexta-feira, 19 de outubro de 2012 01:17

Respostas

Todas as Respostas

  • Acho que o mais famoso é o TinyMCE: http://www.tinymce.com/

    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    • Marcado como Resposta Thiago_Porto sexta-feira, 19 de outubro de 2012 16:28
    sexta-feira, 19 de outubro de 2012 11:07
  • Gostei muito, mas vc tem algum exemplo de como salvar o html no banco de dados?
    sexta-feira, 19 de outubro de 2012 11:39
  • O html você salva como string mesmo.

    Vai no site: http://www.tinymce.com/tryit/full.php 

    e clica em view source.

    Aquele conteudo do textarea você vai receber na action como string, ai você salva normalmente.


    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    sexta-feira, 19 de outubro de 2012 11:58
  • Bom dia Kunze... uma pequena correçao. View Source mostra o codigo de implementaçao do TyneMCE.. para ver o codigo html gerado deve clicar no botao html na barra de ferramentas:

    

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée


    sexta-feira, 19 de outubro de 2012 13:30
    Moderador
  • Eu quis dizer para ele clicar em view source pra ver como implementar heheh.

    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    sexta-feira, 19 de outubro de 2012 13:33
  • Coloquei o script e mostrou o editor normalmente mas na hora que peço pra salvar deu esse erro:

    A potentially dangerous Request.Form value was detected from the client (Texto="<p>fgfgfgf</p>").

    meu código:

    @model TinyMCE_Editor.Models.Cliente
    @{
        ViewBag.Title = "Insert";
    }
    
    <h2>Insert</h2>
    
    @using (@Html.BeginForm())
    { 
        @Html.TextAreaFor(Model => Model.Texto)
        
        <input id="button" type="submit" value="Salvar" />    
    }
    
    
    @section Scripts{    
        
        <script src="~/Scripts/tiny_mce/tiny_mce.js" type="text/javascript"></script>
    
    <script type="text/javascript">
    tinyMCE.init({
            // General options
            mode : "textareas",
            theme : "advanced",
            plugins : "autolink,lists,spellchecker,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",
    
            // 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,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage",
            theme_advanced_toolbar_location : "top",
            theme_advanced_toolbar_align : "left",
            theme_advanced_statusbar_location : "bottom",
            theme_advanced_resizing : true,
    
            // Skin options
            skin : "o2k7",
            skin_variant : "silver",
    
            // Example content CSS (should be your site CSS)
            content_css : "css/example.css",
    
            // Drop lists for link/image/media/template dialogs
            template_external_list_url : "js/template_list.js",
            external_link_list_url : "js/link_list.js",
            external_image_list_url : "js/image_list.js",
            media_external_list_url : "js/media_list.js",
    
            // Replace values for the template plugin
            template_replace_values : {
                    username : "Some User",
                    staffid : "991234"
            }
    });
    </script>
        }
    

    Controller:

    public ActionResult Index()
            {
                return View();
            }
    
            public ActionResult Insert()
            {
                return View();
            }
    
            [HttpPost]
            public ActionResult Insert(Cliente model)
            {
                return View("Index",model);    
            }

    Classe:

    public class Cliente
        {        
            public int Id { get; set; }
            
            public string Nome { get; set; }
            
            public int Idade { get; set; }
    
            public string Texto { get; set; }
        }

    sexta-feira, 19 de outubro de 2012 16:07
  • Coloque um atributo na propriedade Texto:

    [AllowHtml]
    public string Texto{ get; set; }

    isso deve resolver o problema.

    fonte:http://stackoverflow.com/questions/7614978/a-potentially-dangerous-request-form-value-was-detected-from-the-client-wresult

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    • Marcado como Resposta Thiago_Porto sexta-feira, 19 de outubro de 2012 16:28
    sexta-feira, 19 de outubro de 2012 16:19
    Moderador