2009-07-13 31 views
3

爲了使TinyMCE拼寫檢查器能夠在Webforms應用程序上工作,我遵循了教程here。但我試圖在MVC項目上做同樣的事情,每次嘗試使用拼寫檢查程序時都會收到錯誤。ASP .NET中的TinyMCE拼寫檢查器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}"); 

沒有它上面會解釋拼寫檢查請求的URL(TinyMCE.ashx...)作爲MVC路線&試圖找到一個匹配的控制器(&顯然失敗) 。

如果這不是問題,我建議發佈一些關於您所看到的具體錯誤的更多信息。

+0

對不起,但它只說錯誤:在警報JavaScript消息。 – 2009-07-14 00:14:09

+0

如果您安裝Firebug for Firefox或Fiddler之類的東西,您應該能夠看到從服務器返回的實際ajax錯誤。 – Alconja 2009-07-14 00:39:07

4

我很新的MVC(一年多一點),並對我的解決方案中特定頁面的拼寫檢查很感興趣。上述選項可能適用於某些人,但並不適合我(我不是很耐心,並且誠實地不想忽略任何路線,或者修改我的配置文件的system.web部分中的某些內容只有5%的解決方案消費者會使用,所以我沒有花費大量時間在這些選項上)。

所以:

  1. 我複製了Moxiecode.TinyMCE.dll文件的目錄在我的項目,所以未來的貢獻者會有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" 

我沒有忽視任何RO茨。我沒有添加另一個httphandler到我正在假設的.net處理程序的一個很長的列表中,並且拼寫檢查現在適用於我。

我也有去的東西不改變太多的不同(假設我找出的TinyMCE的拼寫檢查與HTTP上下文做的能力。

PS 堆棧溢出的富文本編輯器似乎不具備一個拼寫檢查功能,所以沒有擔保上述拼寫:)