2009-07-13 17 views
3

Ich folgte dem Tutorial beschrieben here, um den TinyMCE Rechtschreibprüfer an einer Webforms-Anwendung arbeiten zu lassen. Aber ich habe versucht, dasselbe bei einem MVC-Projekt zu tun und bekomme jedes Mal Fehler, wenn ich versuche, die Rechtschreibprüfung zu verwenden.TinyMCE Rechtschreibprüfung in ASP.NET MVC

Ich würde gerne wissen, welche Änderungen oder Anpassungen ich vornehmen muss, um dieses Wort in einem ASP .NET MVC-Projekt zu machen.

Der Fehler Ich erhalte ist folgende:

[HttpException]: The controller for path '/TinyMCE.ashx' could not be found or it does not implement 
IController. 
    at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(Type controllerType) 
    at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String 
controllerName) 
    at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) 
    at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) 
    at System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) 
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute 
() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

Antwort

5

Nun ist es ein wenig schwer zu wissen, was das Problem ist, ohne zu wissen, was der Fehler Sie bekommen ist, aber ich glaube, dass seine weil Sie die Route zur Rechtschreibprüfung in Ihrem MVC ignorieren müssen. Tun Sie dies durch so etwas zu Ihren MVC Route Definitionen hinzufügen:

//ignore just the TinyMCE spell checker service: 
routes.IgnoreRoute("TinyMCE.ashx"); 
//or if you want to be more general & ignore all ashx's: 
routes.IgnoreRoute("{resource}.ashx{*pathInfo}"); 

Ohne den oben würde die Rechtschreibprüfung Anfrage url (TinyMCE.ashx...) als MVC Route & werden zu interpretieren versuchen, einen passenden Controller zu finden (& offensichtlich gescheitert) .

Wenn das nicht das Problem ist, würde ich vorschlagen, weitere Informationen über den spezifischen Fehler, den Sie sehen, zu veröffentlichen.

+0

Es tut mir leid, aber es sagt nur Fehler: auf einer Warnungsjavascriptnachricht. –

+0

Wenn Sie etwas wie Firebug für Firefox oder Fiddler installieren, sollten Sie den tatsächlichen Ajax-Fehler sehen können, der vom Server zurückkommt. – Alconja

+0

Entschuldigung, ich habe die Regel nicht wirklich getestet ... Sollte genügen, um 'routes.IgnoreRoute (" TinyMCE.ashx ") zu ignorieren;' (falls das nicht funktioniert, versuche die zweite Option, die ich gegeben habe). – Alconja

4

Ich bin ziemlich neu in MVC (etwas über ein Jahr) und war ziemlich interessiert an Rechtschreibprüfung für eine bestimmte Seite in meiner Lösung. Die oben genannten Optionen können für einige Leute funktionieren, aber funktionierte nicht für mich (ich bin nicht sehr geduldig, und in aller Ehrlichkeit wollte keine Routen zu ignorieren, oder ändern Sie meine System.web Abschnitt meiner Konfiguration für etwas dass nur 5% meiner Lösungskonsumenten verwenden werden, so dass ich nicht viel Zeit mit diesen Optionen verbracht habe).

So:

  1. kopierte ich die Moxiecode.TinyMCE.dll Datei in ein Verzeichnis in meinem Projekt so Zukunft Beiträger werden die DLL haben, ohne Google suchen zu müssen.
  2. Ich habe einen Verweis auf die obige DLL zu meinem Projekt hinzugefügt.
  3. Ich habe einen neuen Controller SpellCheckController.cs genannt, den Folgendes enthält:

    public void CheckSpelling() 
    { 
        SpellCheckerModule spellChecker = new SpellCheckerModule(); 
        spellChecker.ProcessRequest(System.Web.HttpContext.Current); 
    } 
    

(Sie die Verwendung von Moxiecode.TinyMCE.SpellChecker nicht vergessen;)

und nur die referenzierte Controller so in den Setup-Optionen für TinyMCE aus meiner Sicht:

spellchecker_rpc_url: "@Url.Action("CheckSpelling","SpellCheck")/?module=SpellChecker" 

Ich habe keine ro ignoriert utes. Ich habe keinen weiteren httphandler zu dem hinzugefügt, was ich annehme, ist eine ziemlich lange Liste von Handlern für .net, und Rechtschreibprüfung funktioniert für mich jetzt.

Ich habe auch die Möglichkeit, mit etwas anderes, ohne zu gehen, zu viel zu ändern (vorausgesetzt, ich herausfinden, was TinyMCE die Rechtschreibprüfung mit dem http Kontext tut.

PS Stack-Überlauf des Rich-Text-Editor nicht zu haben scheint eine Rechtschreibprüfungsfunktion, also gibt es keine Garantien auf die obige Rechtschreibung :)

+0

Willkommen bei Stack Overflow! Danke für deinen Beitrag! Bitte verwenden Sie keine Signaturen/Taglines in Ihren Beiträgen. Ihre Benutzerbox gilt als Ihre Unterschrift, und Sie können Ihr Profil verwenden, um Informationen über sich selbst zu veröffentlichen. [FAQ zu Signaturen/Slogans] (http://stackoverflow.com/faq#signatures). Und deine Schreibweise hier war in Ordnung, übrigens! ;) –

+0

Diese Arbeit für mich, wie ich Tinymce mit Knockoutjs und sammyjs verwendete – rjdmello