2010-10-22 3 views
4

Je souhaite utiliser CKEditor pour un champ de commentaire dans mon application ASP.NET MVC 2, mais je n'arrive pas à le faire fonctionner. Voici ce que j'ai:L'intégration de CKEditor dans ASP.NET MVC 2?

Le textarea où je tente d'intégrer l'éditeur:

<div class="editor-field"> 
     <%: Html.TextAreaFor(model => model.Comment, new { @class = "textarea", @id="Editor1" })%> 
     <%: Html.ValidationMessageFor(model => model.Comment) %> 
    </div> 

Les références de script dans la tête:

<asp:Content ID="Content3" ContentPlaceHolderID="head" runat="server"> 
    <script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 
    <script src="../../Scripts/ckeditor/ckeditor.js" type="text/javascript"></script> 
    <script src="../../Scripts/ckeditor/adapters/jquery.js" type="text/javascript"></script> 
</asp:Content> 

Et le document fonction prêt:

<% using (Html.BeginForm()) 
    {%> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('#Editor1').ckeditor(); 
     }); 
    </script> 

(Etc ...) Je ne sais pas si le problème est avec le TextareaF ou méthode helper, où j'ai essayé de définir l'ID à Editor1. Je suis assez nouveau à MVC aussi, donc je devinais que c'était comment le faire.

De toute façon, cela ne fonctionne pas, et j'apprécierais toute suggestion quant à ce que je fais mal.

+0

Avez-vous une erreur de JavaScript? – Aristos

+0

Oui, voir le commentaire ci-dessous ... – Anders

Répondre

1

Ok, a trouvé la réponse moi-même. Il semble qu'il y avait un conflit avec un autre plugin jQuery sur la même page, donc je devais utiliser jQuery.noConflict(); puis utilisez jQuery au lieu de $ dans le code. Le placement de noConflict était également important. Voir le commentaire de erhard sur cette page web: http://devoracles.com/jquery-error-documentready-is-not-a-function-sure

+0

ce commentaire n'est plus accessible. Qu'est-ce que c'était? –

0

vérifiez d'abord si $('#Editor1') retourne l'élément que vous voulez.

alert($('#Editor1').length); 
alert($('#Editor1')[0].id); 

sinon, essayez d'utiliser un sélecteur de classe au lieu, comme $('.ckeditor')

+0

Oui c'est. Mais lorsque je vérifie le débogueur dans Chrome, j'obtiens le message d'erreur "Uncaught TypeError: Object # n'a pas de méthode 'ckeditor'". Je suis nouveau à jQuery donc je ne sais pas ce que je fais mal ici. – Anders