1

我刚刚在 asp.net mvc 2 中将我的控制器转换为 asyncController。(即:将操作方法​​ About 拆分为 AboutAsync 和 AboutCompleted)。但是,我收到资源未找到错误。

我的路由表没有改变,我能想到的唯一原因是因为我是mvcextension项目。由于它自己连接控制器工厂并从 IoC 容器创建实例,是否需要连接 AsyncHttpHandler ?任何人都可以给出一些提示吗?

提前致谢。

4

1 回答 1

5

一些需要检查的注意事项,按顺序:

  • 确保您的控制器是 AsyncController 的子类,而不是简单的 Controller。
  • 点击 HomeController::AboutAsync()/AboutCompleted() 的 URL 应该是 /Home/About (Async不是 URL 的一部分)
  • 如果您使用自定义调用程序,它必须继承 AsyncControllerActionInvoker(或实现 IAsyncControllerActionInvoker),而不是直接继承 ControllerActionInvoker
  • 确保将 MvcRouteHandler 连接到路由(这应该是 MapRoute 的默认行为)。如果您使用的是自定义 IRouteHandler,请确保其 GetHttpHandler() 方法返回一个 MvcHandler。(注意 - 你不应该继承 MvcHandler。)
于 2010-07-20T01:53:08.453 回答