2010-10-17 2 views
5

Lors de l'implémentation d'ASP.NET MVC AsyncController, la méthode xxxCompleted doit être publique. Je me demande si cela signifie que la méthode xxxCompleted peut être appelée directement, ou si elle est protégée en interne en utilisant NonAction ou quelque chose de similaire?ASP.NET MVC AsyncController xxxCompleted

Merci.

Répondre

2

En interne (et de façon simpliste), il y a un tableau de MethodInfo des actions sur le contrôleur asynchrone construit. Lorsqu'il est construit, les suffixes Async et Completed sont supprimés des noms de méthodes d'action.

Si vous essayez un appel d'une méthode d'action telle que IndexCompleted ce tableau est recherché, mais parce qu'il n'y a pas un IndexCompleted dans le tableau (parce que les suffixes ont été supprimés) les rapports AsyncControllerActionInvoker qu'aucune action n'a été trouvée.

Il est utile d'avoir un coup de coude autour du code source pour voir par vous-même:

ASP.NET MVC 2 RTM on CodePlex