2009-07-13 24 views
3

TinyMCE SpellcheckerをWebformsアプリケーションで動作させるために、hereのチュートリアルに従いました。しかし、私はMVCプロジェクトでも同じことをやろうとしましたが、スペルチェッカーを使用しようとするたびにエラーが発生しています。TinyMCE Spellchecker in ASP .NET MVC

私はこの言葉をASP .NET MVCプロジェクトで作成するためにどのような変更や調整が必要かを知りたいと思います。

私は取得していますエラーは以下の通りです:

[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) 

答えて

5

問題は、あなたが取得しているエラーが何であるかを知らずにいるが、私はそのことを推測しているかを知ることがまあその少し難しいですあなたのMVCのスペルチェッカーへの経路を無視する必要があるからです。あなたのMVCのルート定義にこのようなものを追加することでこれを行います。

//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}"); 

をその上MVCルート&としてスペルチェックのリクエストURL(TinyMCE.ashx...を)解釈されるだろうがないとは(失敗明らか&)一致するコントローラーを見つけよう。

これは問題ではない場合は、表示されている特定のエラーに関する情報を追加することをおすすめします。

+0

ご迷惑をおかけしていますが、アラートのjavascriptメッセージにはエラー:と表示されています。 –

+0

Firebug for FirefoxやFiddlerのようなものをインストールすると、実際のajaxエラーがサーバーから戻ってくるのがわかるはずです。 – Alconja

+0

申し訳ありません、実際にはルールをテストしていませんでした。 'routes.IgnoreRoute(" TinyMCE.ashx ");'を使用して無視するだけで十分でしょう(動作しない場合は、2番目のオプションを試してみてください)。 – Alconja

4

私はMVC(1年余り)に新しく、私のソリューションの特定のページのスペルチェックにかなり興味がありました。上記のオプションは一部の人にとってはうまくいくかもしれませんが、私にとってはうまくいきませんでした(私はとても辛抱強くはありませんし、すべてのルートを無視したり、自分のconfigのsystem.webセクションを何か私のソリューションの消費者のほんの5%しか使うつもりはないので、私はそれらのオプションに多くの時間を費やさなかった)。

ので:

  1. 私は将来の貢献者は、Googleで検索することなく、DLLを持っています私のプロジェクト内のディレクトリにMoxiecode.TinyMCE.dllファイルをコピーしました。
  2. 上記のDLLへの参照をプロジェクトに追加しました。
  3. 私は次の内容が含まれていSpellCheckController.csと呼ばれる新しいコントローラを作成:

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

(使用Moxiecode.TinyMCE.SpellCheckerを忘れないでください。)

とちょうど参照を私の見解では、TinyMCEの設定オプションでこのようなコントローラがあります:

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

私は何も無視していませんutes。私は別のhttphandlerを追加していません。私が想定しているのは、.netのハンドラのかなり長いリストです。スペルチェックは今私のために働いています。

また、私はTinyMCEをのスペルチェッカーは、HTTPコンテキストでやっているかを把握仮定(あまり変えずに別の何かを移動する機能を持っている。PS スタックオーバーフローのリッチテキストエディタを持っていないようです

スペルチェック機能はありませんので、上記のスペルは保証されていません:)

+0

スタックオーバーフローへようこそ!あなたのポストに感謝します!あなたの投稿にシグネチャ/タグラインを使用しないでください。あなたのボックスはあなたの署名として数えられ、あなたのプロフィールを使って好きな自分に関する情報を投稿することができます。 [署名/タグラインに関するよくある質問](http://stackoverflow.com/faq#signatures)そしてここのあなたのスペルは素晴らしかった、btw! ;) –

+0

私はknockoutjsとsammyjsでtinymceを使っていたので – rjdmello