4

我按照此处描述的教程进行操作,以使 TinyMCE Spellchecker 在 Webforms 应用程序上工作。但是我尝试在 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)
4

2 回答 2

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 路由并尝试找到匹配的控制器(显然失败)。

如果这不是问题,我建议发布有关您所看到的特定错误的更多信息。

于 2009-07-14T00:00:06.357 回答
5

我对 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"

我没有忽略任何路线。我没有在我假设的.net 处理程序列表中添加另一个 httphandler,现在拼写检查对我有用。

我也有能力在不改变太多的情况下使用不同的东西(假设我弄清楚 TinyMCE 的拼写检查器在 http 上下文中做了什么。

PS Stack Overflow 的富文本编辑器似乎没有拼写检查功能,所以对上述拼写没有任何保证:)

于 2013-03-14T20:51:41.960 回答