ASP .NET MVC中的TinyMCE Spellchecker

Raú*_*Roa 3 asp.net asp.net-mvc spell-checking tinymce

我按照这里描述的教程,使TinyMCE拼写检查工具在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)
Run Code Online (Sandbox Code Playgroud)

Alc*_*nja 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}");
Run Code Online (Sandbox Code Playgroud)

如果没有上述内容,它会将拼写检查请求url(TinyMCE.ashx...)解释为MVC路由并尝试找到匹配的Controller(显然会失败).

如果这不是问题,我建议发布更多关于您所看到的具体错误的信息.


小智 5

我是 MVC 的新手(一年多一点)并且对我的解决方案中特定页面的拼写检查非常感兴趣。上述选项可能对某些人有用,但对我不起作用(我不是很有耐心,老实说不想忽略任何路由,或者修改我的配置的 system.web 部分以进行某些操作我的解决方案消费者中只有 5% 会使用,所以我没有在这些选项上花费大量时间)。

所以:

  1. 我将 Moxiecode.TinyMCE.dll 文件复制到我项目中的一个目录中,以便未来的贡献者无需搜索 google 即可拥有该 dll。
  2. 我在我的项目中添加了对上述 dll 的引用。
  3. 我创建了一个名为 SpellCheckController.cs 的新控制器,其中包含以下内容:

    public void CheckSpelling()
    {
        SpellCheckerModule spellChecker = new SpellCheckerModule();
        spellChecker.ProcessRequest(System.Web.HttpContext.Current);
    }
    
    Run Code Online (Sandbox Code Playgroud)

(不要忘记使用 Moxiecode.TinyMCE.SpellChecker;)

在我看来,只是在 TinyMCE 的设置选项中引用了这样的控制器:

spellchecker_rpc_url: "@Url.Action("CheckSpelling","SpellCheck")/?module=SpellChecker"
Run Code Online (Sandbox Code Playgroud)

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

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

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