ASP.NET MVC AsyncController xxxCompleted - PullRequest
       5

ASP.NET MVC AsyncController xxxCompleted

5 голосов
/ 18 октября 2010

При реализации ASP.NET MVC AsyncController метод xxxCompleted должен быть Public.Мне интересно, означает ли это, что метод xxxCompleted может быть вызван напрямую, или это защищено внутренне с помощью NonAction или чего-то подобного?

Спасибо.

1 Ответ

2 голосов
/ 18 октября 2010

Внутренне (и упрощенно) существует массив MethodInfo действий на построенном асинхронном контроллере. После создания суффиксы Async и Completed удаляются из имен методов действия.

Если вы попытаетесь вызвать метод действия, такой как IndexCompleted, в этом массиве выполняется поиск, но, поскольку в массиве нет IndexCompleted (поскольку суффиксы были удалены), AsyncControllerActionInvoker сообщает, что никаких действий найдено.

Стоит потренироваться в исходном коде, чтобы убедиться в этом:

ASP.NET MVC 2 RTM в CodePlex

...