2009-12-10 4 views
1

Je reçois un comportement très étrange avec tinyMCE dans une application bêta ASP.NET MVC 2 (même chose avec MVC 1). J'ai une vue appelée "edit.aspx" qui est appelée lorsque l'utilisateur essaie de créer ou de modifier une entité. La vue utilise jquery pour charger tinyMCE partout où il trouve des textarea.ASP.NET MVC et tinyMCE

Voici mes 2 méthodes d'action que les deux appellent même "Edit.aspx" vue

public ActionResult Create() 
{ 
    return View("Edit", new FutureEvent()); 
} 

[HttpGet] 
public ActionResult Edit(int id) 
{ 

     FutureEvent futureEvent = (from fe in adminGalleryRepository.FutureEvents 
          where fe.ID == id 
          select fe).FirstOrDefault(); 

     return View("Edit", futureEvent); 

} 

La vue "Edit.aspx":

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Admin.Master" Inherits="System.Web.Mvc.ViewPage<DomainModel.Entities.FutureEvent>" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
    Future event 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 

    <script type="text/javascript">   

     $(function() { 
      $("#tabs").tabs(); 
      $('textarea').tinymce({ 
       script_url: '../../Scripts/tiny_mce/tiny_mce.js', 
       theme: "advanced", 
       plugins: "safari,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,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak", 
       theme_advanced_toolbar_location: "top", 
       theme_advanced_toolbar_align: "left", 
       theme_advanced_statusbar_location: "bottom", 
       theme_advanced_resizing: true 
      }); 
     }); 

    </script>  


    <h2>Future event</h2> 

    <%= Html.ValidationSummary("Edit was unsuccessful. Please correct the errors and try again.") %> 

    <% using (Html.BeginForm("Edit", "FutureEvents")) {%> 


      <div id="tabs"> 

        <ul> 
         <li><a href="#tabs-1">Future event</a></li> 
        </ul>    

        <div id="tabs-1"> 

         <%= Html.Hidden("ID") %> 

         <label class="formLabel" for="Title">Title: 
          <%= Html.ValidationMessage("Title", "*") %> 
          <%= Html.TextBox("Title", Model.Title, new { size = "40px" })%> 
         </label> 

         <label class="formLabel" for="Info">Info: 
         <br /> 
          <%= Html.TextArea("Info", Model.Info, 15, 130, null) %> 
         </label> 

         <br /> 
         <label class="formLabel" for="WebSite">Web site address: 
          <%= Html.TextBox("WebSite", Model.WebSite, new { size = "40px" })%> 
         </label> 

        </div> 

      </div> 

      <div class="clear" ></div> 
      <div id="footer" style="text-align: left">  
       <input type="submit" value="Save" /> 
       <%=Html.ActionLink("Back to List", "List") %>  
      </div> 

    <% } %> 



</asp:Content> 

La chose étrange est que le créer La méthode rend la vue "edit" et la modification tinyMCE apparaît correctement. Mais lorsque la méthode d'édition édite la vue "edit", la vue apparaît comme vous l'attendiez - mais sans l'éditeur tinyMCE.

Aucune erreur n'apparaît dans FireBug, j'ai exactement le même comportement dans IE.

J'ai également essayé de supprimer la ligne $ ("# tabs"). Tabs() mais cela n'a fait aucune différence.

Répondre

1

Il pourrait être lié à cette ligne:

script_url: '../../Scripts/tiny_mce/tiny_mce.js', 

Puisque le problème est dans la vue Edition, peut-être le paramètre supplémentaire ajoute un niveau à la structure du dossier.

Pourquoi essayez-vous pas:

script_url: '/Scripts/tiny_mce/tiny_mce.js', 
+0

Merci Eduardo qui a fait l'affaire. –