2010-07-20 4 views
1

Je viens de convertir un contrôleur my en asyncController dans asp.net mvc 2. (ie: méthode d'action splitting About dans AboutAsync et AboutCompleted). Cependant, j'obtiens une erreur de ressource non trouvée.Ressource introuvable dans asp.net mvc AsyncController

Ma table de route n'a pas changé et la seule raison que je peux penser est parce que je suis mvcextension projet. Comme il fait son propre câblage de controllerFactory et crée une instance à partir du conteneur IoC, doit-il câbler l'AsyncHttpHandler? Quelqu'un peut-il laisser tomber quelques indices?

merci d'avance.

Répondre

5

Quelques notes pour les choses à vérifier pour, dans l'ordre:

  • Assurez-vous que votre contrôleur de sous-classes AsyncController plutôt que simplement contrôleur.
  • L'URL pour toucher HomeController :: AboutAsync()/AboutCompleted() devrait être/Accueil/A propos de (la Async ne fait pas partie de l'URL)
  • Si vous utilisez un invocateur personnalisé, il faut sous-classe AsyncControllerActionInvoker (ou implémenter IAsyncControllerActionInvoker) plutôt que de sous-classer ControllerActionInvoker directement
  • Assurez-vous de faire passer MvcRouteHandler à Routing (ce qui devrait être le comportement par défaut de MapRoute). Si vous utilisez un IRouteHandler personnalisé, assurez-vous que sa méthode GetHttpHandler() renvoie un MvcHandler. (Remarque - vous ne devriez pas sous-classe MvcHandler.)
+0

« Si vous utilisez un invocateur personnalisé, il doit sous-classe AsyncControllerActionInvoker (ou mettre en œuvre IAsyncControllerActionInvoker) plutôt que de la sous-classe ControllerActionInvoker directement » Ce droit est sur !!! Merci à l'open source, je ne peux pas seulement résoudre ce problème moi-même et aussi mettre un patch! – Herman

Questions connexes