在实现ASP.NET MVC AsyncController时,xxxCompleted方法必须是公共的。我想知道这是否意味着可以直接调用xxxCompleted方法,或者是否使用NonAction或类似的内部保护?
谢谢。
发布于 2010-10-18 08:01:07
在内部(简单地说),在异步控制器上构造了一个动作的MethodInfo数组。当它被构造时,Async和Completed后缀被从动作方法名中去掉。
如果您尝试调用一个操作方法,比如IndexCompleted,则会搜索这个数组,但是因为该数组中没有IndexCompleted (因为后缀已被删除),所以AsyncControllerActionInvoker会报告没有找到任何操作。
看一下源代码是值得的,你可以自己看看:
ASP.NET MVC 2 RTM on CodePlex
https://stackoverflow.com/questions/3955483
复制相似问题